1.区域划分
2.公有属性 x
3.受保护属性 _y
表示可以访问,但有警告,不报错
__all__ = ["_y", ...] # 列表内的属性可以用跨模块访问方式2访问
4.私有属性 __z (双下划线 __)
私有属性只能通过类的内部进行访问
class Person:
def __init__(self):
self.__age = 18
def set_age(self, value):
if isinstance(value, int) and 0< value<100:
self.__age = value
else:
print("输入的value有误")
p1 = Person()
p1.set_age(20) # 此处已将age改为20
注意私有属性的实现机制 -> 名字重整机制
class Person:
__x = 10 # 实际上将是由属性x改成了:_Person__x = 10
其实可以通过
Person._Person__x
来访问私有化属性,但既然私有化了这个属性,通过该方式访问它就显得没有意义了。