相关疑难解决方法(0)

Python可以打印函数定义吗?

在JavaScript中,可以打印出函数的定义.有没有办法在Python中实现这一目标?

(只是在交互模式下玩,我想读一个没有打开的模块().我只是很好奇).

python

95
推荐指数
5
解决办法
6万
查看次数

打印定义lambda函数的代码

我希望能够打印lambda函数的定义代码.

示例如果我通过lambda语法定义此函数:

>>>myfunction = lambda x: x==2
>>>print_code(myfunction)
Run Code Online (Sandbox Code Playgroud)

我想得到这个输出:

x==2
Run Code Online (Sandbox Code Playgroud)

python

47
推荐指数
4
解决办法
3万
查看次数

有没有办法从python控制台中查看模块的源?

如果我在python控制台中,我想看看特定模块是如何工作的,是否有一种简单的方法来转储源代码?

python

17
推荐指数
2
解决办法
2万
查看次数

查看Python函数的代码

假设我正在使用Python shell,我给了一个函数f.如何访问包含其源代码的字符串?(从shell开始,而不是手动打开代码文件.)

我希望这甚至可以用于其他函数中定义的lambda函数.

python introspection

13
推荐指数
2
解决办法
7675
查看次数

Python反射 - 我可以使用它来获取方法定义的源代码

重复..


我有一个成功运行的方法定义,但想在运行时修改它.

例如:如果我有方法

def sayHello():
    print "Hello"
Run Code Online (Sandbox Code Playgroud)

type(sayHello)给我答案'type function'.我能获取此函数对象的源代码字符串吗?它被认为是安全问题吗?

python reflection

10
推荐指数
3
解决办法
6350
查看次数

有没有办法从python解释器查看函数,类或模块的源代码?

有没有办法从python解释器查看函数,类或模块的源代码?(除了使用帮助查看文档和dir以查看属性/方法)

python

8
推荐指数
2
解决办法
4927
查看次数

Python - os.path不存在:AttributeError:'module'对象没有属性'path'

调查一下我开始用gdb-python突然得到的一个奇怪的错误,我把它简化为:

C:\Users\User>python -i
Python 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)] on win 32
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> dir(os.path)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'path'
>>> dir(os)
['__builtins__', '__doc__', '__file__', '__name__', '__package__']
Run Code Online (Sandbox Code Playgroud)

通过其他一些'module' object has no attribute答案,最常见的建议是,os.py某个地方必须有另一个流氓sys.path,并且它正在加载,而不是内置的.但我检查了PYTHONPATH环境变量,并在当前目录中,并没有任何其他os.py.

因此,我找到了一种方法来查找定义实体的文件的名称,并且毫不奇怪,Python 以模块的形式具有这样的功能inspect.

>>> inspect.getsourcelines(os)
Traceback …
Run Code Online (Sandbox Code Playgroud)

python path corruption built-in python-import

6
推荐指数
1
解决办法
2万
查看次数

有没有办法以字符串形式获取上下文管理器中的源代码?

函数的源代码可以通过inspect.getsourcelines(func)函数接收。有没有办法为上下文管理器做同样的事情?

with test():
    print('123')

# How to get "print('123')" as line here?
Run Code Online (Sandbox Code Playgroud)

python

6
推荐指数
1
解决办法
1264
查看次数

如何查看/打印保存在变量中但已删除代码的函数?

我正在编写一个脚本,并且不小心删除了一个函数的代码(因此无法撤消),但该函数保存在内存中。

print(diff)

#output
<function diff at 0x7f48f238a670>
Run Code Online (Sandbox Code Playgroud)

有没有办法打印这个函数的代码?

python function

6
推荐指数
0
解决办法
111
查看次数

你如何让Python写下它在内存中的函数代码?

当我通过程序中的选项(计算生物学实验)时,我通常会将它们传递给.py文件.
所以我有这个.py文件,如下所示:

starting_length=9
starting_cell_size=1000
LengthofExperiments=5000000
Run Code Online (Sandbox Code Playgroud)

然后我执行文件并获取数据.由于程序全部在我的机器上,没有其他人可以访问它,因此它是安全的.
我也可以很容易地写一个类似的文件:

def writeoptions(directory):
    options=""
    options+="starting_length=%s%s"%(starting_length,os.linesep)
    options+="starting_cell_size=%s%s"%(starting_cell_size,os.linesep)
    options+="LengthofExperiments=%s%s"%(LengthofExperiments,os.linesep)
...
    open("%s%soptions.py"%(directory,os.sep),'w').write(options)
Run Code Online (Sandbox Code Playgroud)

我想传递一个函数作为参数之一:

starting_length=9
starting_cell_size=1000
LengthofExperiments=5000000

def pippo(a,b):
    return a+b
functionoperator=pippo
Run Code Online (Sandbox Code Playgroud)

当然,在真正的实验中,函数pippo会复杂得多.不同于实验到实验.

但我无法做的是自动编写函数.总之,如果其中一个选项是函数,我不知道如何推广writeoptions函数以继续编写选项.我当然可以复制原始文件,但这是不优雅的,低效的(因为它包含许多未被使用的额外选项),并且通常不能解决问题.

你如何让python写下函数的代码,因为它记下了变量的值?

python artificial-intelligence

5
推荐指数
1
解决办法
2855
查看次数