是否可以在Python中将函数作为字符串打印?

时间:2012-08-12 20:39:08

标签: javascript python

  

可能重复:
  Can Python print a function definition?

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

Javascript中的示例:

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

是否可以在Python中执行相同的操作?

2 个答案:

答案 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模块)或者编译了函数,它将无法工作飞行,在交互式口译员或其他方面。