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

类的私有方法和属性

作者: 闲云野鹤_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()

总结:

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

相关文章

  • python中OOP的类属性和方法与多态

    目录 类的结构 类属性和实例属性 类方法和静态方法 多态 私有属性和私有方法 01. 类的结构 1.1 术语 ——...

  • Javascript 面向对象(共有方法,私有方法,特权方法,静

    一,私有属性和方法 私有方法:私有方法本身是可以访问类内部的所有属性(即私有属性和公有属性),但是私有方法是不可以...

  • Python面向对象

    类 Demo1 Demo2 私有属性和私有方法 在属性和方法前面加两个下划线,代表私有属性和私有方法。私有属性和私...

  • ES5、ES6继承

    ES5、ES6继承方式 继承的目标: 父类公有属性和方法为子类公有属性和方法父类私有属性和方法为子类私有属性和方法...

  • 公有、私有、静态属性和方法的区别2018-07-10

    //私有方法:私有方法本身是可以访问类内部的所有属性(即私有属性和公有属性),但是私有方法是不可以在类的外部被调用...

  • ES6中Class的基本语法及与ES5中Cass的区别

    目录 简介 静态方法 实例属性的新写法 静态属性 私有方法和私有属性 new.target属性 一、简介 类的由来...

  • day21(python高级编程,property属性,生成器,

    属性property 私有属性添加getter和setter方法 对于类对象的私有属性,我们不能直接调用,可以添加...

  • day014 笔记 08-01

    内置类的属性 python中每个类都拥有内置的类属性。 私有化 python中类中的属性和方法的私有化:直接在属性...

  • Day_13 类和对象

    python中类中的属性和方法的私有化直接在属性名或方法名前加__属性或方法的私有:在外部不能直接使用,可以在类的...

  • 继承

    继承: 子类必须有父类的公有和私有属性和方法 继承私有属性: 改变子类的this指向 继承公有方法: 直接把父类的...

网友评论

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

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