封装

来源:互联网 发布:sas软件编辑器推荐 编辑:程序博客网 时间:2024/06/10 13:23
一、
封装 :把一些属性和方法放到类里 这本身就是一种封装
封装 : 把属性和方法藏在类里 我只能在类内部调用,不能再外部使用
要想变成私有变量,只需要把变量名前加上__(双下划线),外部则不能调用,若要调用用_类名__变量名 来调用(不提倡这样)
呐:
classDog:__role = 'dog'#私有的静态属性def__discount(self):#私有的方法print('in __func')defprice(self):self.__discount()print(Dog.__dict__) # 里面含{...'_Dog__role': 'dog',...}print(Dog._Dog__role) # dogd = Dog()d.__discount() # 报错d._Dog__discount() #in __func
N
定义一个私有变量\属性\方法 : __名字
在类的内部可以直接用 : __名字
在类的外部不能直接使用,如果一定要用,在私有方法之前加上:_类名,变成 _类名__名字
在类外的名字 通过__dict__就可以查看

应用实例:
classRoom:def__init__(self,name,price,length,width):self.name = nameself.price = priceself.__length =length #私有的对象属性self.__width = widthdefarea(self):returnself.__length*self.__widthhouse = Room('小超超',1000000,2,1) # 努努力,厕所变墓地print(house.area()) # 2
错误小方法:
classA:def__func(self): # _A__funcprint('__a_func')classB(A):def__init__(self):self.__func() # _B__funcb = B() # 报错,找不到
Na:
私有的:
①私有的静态属性、方法、对象属性
②使用__名字的方式调用,保证在类内部可以调用,外部不行
③不能被继承
④当有一个名字,不想被外部使用也不想被子类继承,只想在内部使用的时候就定义私有的



 像我这样的人  ---  毛不易