Python高级语法:描述器、属性与元编程深度解析
1. Python中的私有属性与名称修饰
许多C++和Java程序员初涉Python时,会惊讶于Python没有 private 关键字。Python中与之最接近的概念是“名称修饰”(name mangling)。当属性以 __ 开头时,解释器会动态重命名该属性。示例代码如下:
>>> class MyClass(object):
... __secret_value = 1
...
>>> instance_of = MyClass()
>>> instance_of.__secret_value
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'MyClass' object has no attribute '__secret_value'
>>> dir(MyClass)
['_MyClass__secret_value', '__class__', '__delattr__', '__dict__',
'__doc__', '__getattribute__', '__hash__', '__init__', '__module__',
'__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__',
'__st
超级会员免费看
订阅专栏 解锁全文
18万+

被折叠的 条评论
为什么被折叠?



