与 C++、C#、Java 等语言相似,Python 支持将类的属性和方法设置成特定的访问权限,但不是通过关键字区分,而是使用一套约定式的规则:
使用一个下画线“_”开头的属性或方法为保护(protected)属性或方法,只能在类或其派生类中访问,在类内部以“self._属性名或方法名”的方式使用;
其他的属性或方法为公有(public)属性或方法,可在类的外部直接访问,在类内部以“self.属性名或方法名”的方式使用。
以下例子展示了三种不同访问权限的属性和方法:
class Class1:
public1= 111
_protected1 = 222
_private1 = 333
def publicFunc1(self):
pass
def _protectedFunc1(self):
pass
def __privateFunc1(self):
pass
class Class2(Class1):
public2 = 444
_protected2 = 555
__private2 = 666
def publicFunc2(self):
pass
def _protectedFunc2(self):
pass
def __privateFunc2(self):
pass
c1 = Class1()
print(c1.public1)
print(c1._protected1)
print(c1.__private1)
c1.publ