跳转到主要内容

__qualname__ 仿真针对旧版Python版本

项目描述

Python模块,用于在旧版Python版本中仿真类和方法(Python 3.3+)的__qualname__属性。有关详情,请参阅PEP 3155

https://travis-ci.org/wbolster/qualname.svg?branch=master Downloads Latest Version Supported Python versions Development Status License

安装

pip install qualname

使用方法

假设以下定义

class C:
    def f():
        pass

    class D:
        def g():
            pass

在Python 3.3+中,类有一个__qualname__属性

>>> C.__qualname__
'C'
>>> C.f.__qualname__
'C.f'
>>> C.D.__qualname__
'C.D'
>>> C.D.g.__qualname__
'C.D.g'

不幸的是,Python 2和早期Python 3版本没有(明显的)等效属性。qualname来救命

from qualname import qualname

>>> qualname(C)
'C'
>>> qualname(C.f)
'C.f'
>>> qualname(C.D)
'C.D'
>>> qualname(C.D.g)
'C.D.g'

胜利!

它是如何工作的?

很高兴您问了。

此模块使用源代码检查来确定(嵌套)类和函数的定义,从而确定它们的限定名。这意味着解析源文件和遍历AST(抽象语法树)。这听起来非常不切实际,而且确实如此,但Python解释器本身没有必要的信息,所以这证明了极端措施是合理的。

现在您知道了它是如何工作的,您也会理解此模块仅在源文件可用时才能工作。幸运的是,这种情况在大多数情况下都是如此。

许可

BSD。

反馈?问题?

https://github.com/wbolster/qualname

项目详情


下载文件

下载您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分布

qualname-0.1.0.tar.gz (3.1 kB 查看哈希值)

上传时间

支持