类的私有方法和属性
2021-01-20 本文已影响0人
闲云野鹤_23dd
类的私有方法和属性:
1.类的私有属性
在声明 类属性的时候前面加上 双下划线,那么这个属性被定义为 私有的,受保护的,只可以在类的内部访问 无法被外部访问
例子:
在类内部的speak可以使用__weight 属性
但是在外部对象,则无法使用
输出__weight时为空,编辑器会出现黄色警告
image.png
class people:
#定义基本属性
name = ''
age = 0
#定义私有属性,私有属性在类外部无法直接进行访问
__weight = 0
#定义构造方法
def __init__(self,n,a,w):
self.name = n
self.age = a
self.__weight = w
def speak(self):
print("%s 说: 我 %d 岁。" %(self.name,self.age))
print(f'__weight:{self.__weight}')
if __name__ == '__main__':
a= people('小红',2,3)
a.speak()
print(a.name)
print(a.__weight)`
2.类的私有方法
在声明 类方法的时候前面加上 双下划线,那么这个方法被定义为 私有的,受保护的,只可以在类的内部访问 无法被外部访问
例子:
在speak 方法中可以调用类的私有方法:__info
使用a对象调用__info方法时会报错
image.png
class people:
#定义基本属性
name = ''
age = 0
#定义私有属性,私有属性在类外部无法直接进行访问
__weight = 0
#定义构造方法
def __init__(self,n,a,w):
self.name = n
self.age = a
self.__weight = w
def speak(self):
print("%s 说: 我 %d 岁。" %(self.name,self.age))
print(f'__weight:{self.__weight}')
self.__info()
## 私有方法
def __info(self):
print('调用私有方法')
if __name__ == '__main__':
a= people('小红',2,3)
print(a.name)
# print(a.__weight)
a.__info()
总结:
简单来讲:当你把一个事物的特征(属性)和行为(方法)进行抽象提取和归纳,转换后的东西 叫做类. 对象 就是对类做实例化.
类中的属性和方法设计为受保护,外界无法直接访问这个属性或方法,让每个人的隐私得到了保障(一些不必要的行为变得可控),这是 封装 带来的好处。