Python类访问权限详解:单下划线、双下划线与实例
Python类访问权限详解
在Python中,没有像Java或C++那样的public、private等关键字来控制类的访问权限。取而代之的是,Python采用了单下划线和双下划线来实现类似的功能。
1. 单下划线(_):
在类成员前添加单下划线,表示该成员是受保护的。按照约定,受保护的成员应该只在类内部或子类中访问。
2. 双下划线(__):
在类成员前添加双下划线,表示该成员是私有的。私有成员只能在类内部访问。
重要提示: Python中的访问权限机制并不是强制性的,即使是私有成员,也可以通过特殊的方式在类外部访问。
代码实例
class MyClass:
def __init__(self):
self.public_member = 'I am a public member'
self._protected_member = 'I am a protected member'
self.__private_member = 'I am a private member'
def get_protected_member(self):
return self._protected_member
def get_private_member(self):
return self.__private_member
my_object = MyClass()
print(my_object.public_member) # 输出:I am a public member
print(my_object.get_protected_member()) # 输出:I am a protected member
print(my_object.get_private_member()) # 输出:I am a private member
print(my_object._MyClass__private_member) # 输出:I am a private member
代码解读:
public_member是公共成员,可以在任何地方访问。_protected_member是受保护的成员,可以通过方法get_protected_member在外部访问。__private_member是私有成员,可以通过方法get_private_member在外部访问,也可以通过_MyClass__private_member这种特殊的方式在外部访问。
总结:
Python的访问权限机制主要依靠程序员的自觉性,单下划线和双下划线更多的是一种提示和约定,而不是强制性的限制。
原文地址: https://www.cveoy.top/t/topic/jswK 著作权归作者所有。请勿转载和采集!