# _name,只是约定不让外部访问,其实还是可以用._name访问
# __name,也只是约定并且更改访问属性名,其实也还是可以访问,用_Foo__age访问
# eg:
class Foo:
__age=18
def __init__(self,name):
self.name=name
f1=Foo('alex')
print(f1.__dict__)
print(Foo.__dict__)
print(f1._Foo__age)
#比较严谨封装的方法
class Room:
def __init__(self,owner,width,length):
self.owner=owner
self.__width=width
self.__legth=length
def tell_area(self):
return self.__legth * self.__width
def get_width(self): #如果封装的变量后面外部想调用则必须写接口函数
return self.__width
r1=Room('alex',10,20)
print(r1.owner)
print(r1.get_width())
print(Room.__dict__)