我知道__all__at 模块范围的使用。然而我遇到了内部类的用法__all__。例如,这是在Python standardlib中完成的:
class re(metaclass=_DeprecatedType):
"""Wrapper namespace for re type aliases."""
__all__ = ['Pattern', 'Match']
Pattern = Pattern
Match = Match
Run Code Online (Sandbox Code Playgroud)
在此背景下取得了什么成果__all__?
che*_*ner 12
该typing模块做了一些非正统的事情来修补现有模块(例如re)。基本上,内置模块re被替换为re使用自定义元类定义的此类,该自定义元类拦截底层对象的属性查找。对于类__all__来说并没有任何特殊含义(它只是另一个类属性),但它实际上成为模块的属性。这是元类的定义实现了这一点。__all__re__getattribute__
| 归档时间: |
|
| 查看次数: |
803 次 |
| 最近记录: |