Python面向对象编程:抽象、继承与设计指南
1. 私有方法与命名约定
在Python中,即使某些方法被设计为私有,若了解其底层机制,仍可在类外部访问。例如:
>>> s._Secretive__inaccessible()
Bet you can't see me ...
这种名称修饰(name-mangling)是一种强烈的信号,提醒他人不应随意访问,但并不能完全阻止。若不想使用名称修饰效果,又想提醒其他对象不要随意访问,可使用单个前导下划线。这主要是一种约定,但也有实际效果,例如使用 from module import * 导入模块时,以单个下划线开头的名称不会被导入。
2. 类命名空间
以下两条语句在功能上大致等价:
def foo(x): return x * x
foo = lambda x: x * x
它们都创建了一个返回参数平方的函数,并将变量 foo 绑定到该函数。同样,定义类时,类语句中的所有代码都在一个特殊的命名空间(类命名空间)中执行,该命名空间可供类的所有成员访问。例如:
class C:
print('Class C being defined...')
执行上述代码,会输出 Class C
超级会员免费看
订阅专栏 解锁全文
996

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



