class Test: attr1 = 100 #公有属性 _attr2 = 200 #私有属性 __attr3 = 300 #私有属性 #你们可以用我的私有属性,但是我的私有属性更改了,我不会通知你 #只要有下划线标识的私有属性,只能在类内部使用,不要在类外部使用 #类属性可以通过类和实例对象访问 c =Test() print(Test.attr1) print(c.attr1) #单下划线开头,对外是公开的,可以直接访问 print(Test._attr2) print(c._attr2) #双下划线开头的私有属性,对外不能直接访问。为了保护这个变量(对外改了一个名字) # print(Test.__attr3) # print(c.__attr3) #在原有的属性名上加了 _类名 print(Test._Test__attr3) #通过类访问 print(c._Test__attr3) #通过实例对象访问 print(Test.__dict__) #私有属性的继承问题 class A(Test): ''' A继承 Test ''' pass a = A() print(a.attr1) print(a._attr2) print(a._Test__attr3) #私有属性可以被继承