Python:一些 "__magic__"属性从该函数中引用一个函数

标签 python python-3.x

在 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/

相关文章:

python - Numba:回退到对象模式时抑制错误

python - 难以按人口统计提取 IMDb 评级(使用 IMDbpy)

arrays - arr.sort(key=lambda x : (x[0], -x[1])) 是什么意思?

python - 批量运行python脚本..如何在结束时关闭cmd窗口?

python - 获取随机轨道

python - 如何在 Python 中解密 AWS Ruby 客户端加密

Python - 如何搜索没有空格的大字符串,查看值是否存在

json - "Not JSON compliant number"构建geojson文件

python - 异步比同步慢

通过子类化 TestCase 进行 Python 参数化单元测试