美文网首页
类的私有方法和属性

类的私有方法和属性

作者: 闲云野鹤_23dd | 来源:发表于2021-01-20 23:14 被阅读0次

    类的私有方法和属性:

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

    总结:

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

    相关文章

      网友评论

          本文标题:类的私有方法和属性

          本文链接:https://www.haomeiwen.com/subject/sgdpoktx.html