在Javascript中,可以将函数的代码打印为字符串吗?
Javascript中的示例:
function thisFunctionPrintsItself(){
return thisFunctionPrintsItself.toString();
}
是否可以在Python中执行相同的操作?
答案 0 :(得分:3)
您可以这样做,但结果没有用,因为所有内容都先编译为字节码。
def printItself():
print repr(printItself.func_code.co_code)
您也可以使用dis
模块进行反汇编,但不能保证结果的可移植性。
def disassembleItself():
print __import__('dis').dis(disassembleItself)
答案 1 :(得分:1)
def foo ():
import inspect
return inspect.getsource(foo)
print (foo())
这里,inspect模块读取源文件,因此如果它们丢失(并且只使用了.pyc
或.pyo
模块)或者编译了函数,它将无法工作飞行,在交互式口译员或其他方面。