在 Python 中是否有 PHP 的 __FUNCTION__
魔法常量的模拟?
def func(x):
print(__FUNCTION__) ## <function func at 0x00B02810>
print(__FUNCTION__.__name__) ## func
更新:
举个例子:
import sys
def func(f = "Foo"):
b = "Bar"
print(sys._getframe().f_code) ## <code object func at 0x00B09A20, file "C:\py\func.py", line 5>
print(func.__code__) ## <code object func at 0x00B09A20, file "C:\py\func.py", line 5>, the same
print(sys._getframe().f_trace) ## None
print(sys._getframe().f_locals) ## {'b': 'Bar', 'f': 'Foo'}
print(sys._getframe().f_lineno) ## 12
if __name__ == "__main__":
func()
最佳答案
您可以使用 inspect module 获得其中的一些功能.
import inspect
def foo():
code = inspect.currentframe().f_code
print code.co_name
您还可以使用 exec code
从代码对象执行代码,其中 code
是在上面的函数中创建的变量。
请注意,inspect.currentframe()
为您提供了与 sys._getframe(0)
相同的对象,但它实际上意味着以这种方式使用。
关于Python:一些 "__magic__"属性从该函数中引用一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14986523/