引言
在面向对象编程中,封装使得我们可以隐藏对象的具体实现细节,只暴露必要的接口给外部调用者。这不仅有助于提高代码的安全性,还能简化外部对对象的操作。在Python中,虽然没有严格意义上的“私有”成员,但可以通过约定(如使用下划线前缀)或特殊的方法来达到类似的效果。接下来,让我们一起探索这些技巧吧!
基础语法介绍
私有属性
在Python中,并没有真正意义上的私有变量,但可以通过在变量名前加上两个下划线__
来实现一种名为名称重整(name mangling)的技术,使得该变量只能在类内部访问。
class MyClass:
def __init__(self):
self.public_attribute = "Public"
self.__private_attribute = "Private"
obj = MyClass()
print(obj.public_attribute) # 输出: Public
print(obj._MyClass__private_attribute) # 输出: Private, 注意这里使用了名称重整后的形式
私有方法
与私有属性类似,私有方法也可以通过在方法名前添加双下划线来实现。
class MyClass:
def public_method(self):
print("Public Method")
def