__qualname__ 仿真针对旧版Python版本
项目描述
Python模块,用于在旧版Python版本中仿真类和方法(Python 3.3+)的__qualname__属性。有关详情,请参阅PEP 3155。
安装
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。
反馈?问题?
项目详情
关闭
qualname-0.1.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 277cf6aa4b2ad36beed1153cfa7bf521b210d54fbecb3d8eea0c5679cecc9ed8 |
|
MD5 | fdc9b7a3174000908fab184a295f9622 |
|
BLAKE2b-256 | d9558701163104e69773bb3c9371094372b1f9057fd5fbf33ca8d3236a63a9c1 |