可能重复:
Python 可以打印函数定义吗?
在 Javascript 中,可以将函数的代码打印为字符串吗?
Javascript 中的示例:
function thisFunctionPrintsItself(){
return thisFunctionPrintsItself.toString();
}
是否可以在 Python 中做同样的事情?
可能重复:
Python 可以打印函数定义吗?
在 Javascript 中,可以将函数的代码打印为字符串吗?
Javascript 中的示例:
function thisFunctionPrintsItself(){
return thisFunctionPrintsItself.toString();
}
是否可以在 Python 中做同样的事情?
您可以这样做,但结果没有用,因为所有内容都首先编译为字节码。
def printItself():
print repr(printItself.func_code.co_code)
您也可以使用该dis
模块进行反汇编,但结果并不保证可移植。
def disassembleItself():
print __import__('dis').dis(disassembleItself)
def foo ():
import inspect
return inspect.getsource(foo)
print (foo())
在这里,inspect 模块读取源文件,因此如果它们丢失(并且仅使用.pyc
or.pyo
模块)或函数在交互式解释器或其他方式中即时编译,它将无法工作。