类的私有方法和属性

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()

总结:

简单来讲:当你把一个事物的特征(属性)和行为(方法)进行抽象提取和归纳,转换后的东西 叫做类. 对象 就是对类做实例化.
类中的属性和方法设计为受保护,外界无法直接访问这个属性或方法,让每个人的隐私得到了保障(一些不必要的行为变得可控),这是 封装 带来的好处。

上一篇下一篇

猜你喜欢

热点阅读