假设我有一个如下定义的Python函数:
def foo(arg1,arg2):
#do something with args
a = arg1 + arg2
return a
Run Code Online (Sandbox Code Playgroud)
我可以使用函数的名称foo.func_name.如上所示,我如何以编程方式获取其源代码?
我希望能够打印lambda函数的定义代码.
示例如果我通过lambda语法定义此函数:
>>>myfunction = lambda x: x==2
>>>print_code(myfunction)
Run Code Online (Sandbox Code Playgroud)
我想得到这个输出:
x==2
Run Code Online (Sandbox Code Playgroud) 当我通过程序中的选项(计算生物学实验)时,我通常会将它们传递给.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写下函数的代码,因为它记下了变量的值?
我有一个系统,在其中我不断地试验函数的内容,然后运行程序。由于我经常打开许多终端窗口,因此有时我并不确切知道哪个版本的函数属于哪个终端窗口。
有没有办法将特定函数的源代码打印到终端?