【问题标题】:Python: Find which version of a function I'm usingPython:查找我正在使用的函数版本
【发布时间】:2012-01-25 17:01:00
【问题描述】:

我对我的导入有点困惑,我想看看我正在使用哪个版本的函数。有什么方法可以获取实现或保存它的类的文件名吗?

【问题讨论】:

    标签: python introspection import


    【解决方案1】:

    您可以使用标准 Python 库中的 inspect 模块

    import inspect
    
    
    inspect.getfile(some_func)
    

    【讨论】:

    • 非常好!不知道这个。它似乎在更多功能(例如struct.pack)上失败,而不仅仅是咨询sys.modules
    • @MattiVirkkunen,sys.modules[struct.pack.__module__].__file__ 为我提高 AttributeError: 'module' object has no attribute '__file__'。看起来没有办法处理内置 sys.modules[struct.pack.__module__] -> <module '_struct' (built-in)>
    • 我想那一定是版本或平台的差异。幸运的是,无论如何,您实际上并不需要知道内置文件来自哪个文件。
    • @MattiVirkkunen,我同意你的看法。顺便说一句,在 Python 2.7.1 win32 上测试。
    【解决方案2】:

    这应该适用于大多数功能。它不适用于内置插件,但无论如何您都不会导入它们。

    import sys
    sys.modules[somefunc.__module__].__file__
    

    【讨论】:

    • 不确定这是否适用于成员函数:例如,''.strip.__module__None
    • @aix:那是因为它是内置的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-23
    • 2014-12-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多