1

可能重复:
Python 可以打印函数定义吗?

在 Javascript 中,可以将函数的代码打印为字符串吗?

Javascript 中的示例:

function thisFunctionPrintsItself(){
    return thisFunctionPrintsItself.toString();
}

是否可以在 Python 中做同样的事情?

4

2 回答 2

3

您可以这样做,但结果没有用,因为所有内容都首先编译为字节码。

def printItself():
    print repr(printItself.func_code.co_code)

您也可以使用该dis模块进行反汇编,但结果并不保证可移植。

def disassembleItself():
    print __import__('dis').dis(disassembleItself)
于 2012-08-12T20:44:23.900 回答
1
def foo ():
    import inspect
    return inspect.getsource(foo)

print (foo())

在这里,inspect 模块读取源文件,因此如果它们丢失(并且仅使用.pycor.pyo模块)或函数在交互式解释器或其他方式中即时编译,它将无法工作。

于 2012-08-12T20:49:41.447 回答