Python-类的私有成员

折月煮酒 提交于 2020-03-05 13:45:59

1.鸭子类型:编程思想

一只鸟,长得像鸭子就是鸭子,叫声像鸭子就是鸭子,走起来像鸭子就是鸭子

归一化,统一接口

2.类的约束:控制子类定义一些方法

  • 方法一:推荐使用

    raise:主动抛出异常

  • 方法二:

    from abc iport ABCMeta,abstractmethod

    抽象类,接口类:指定一些规则

3.super

按照mro的查找顺序进行查找

super(类名,self)从当前mro中查找类名的下一个类

super时按照mro的顺序进行继承

4.类的私有成员

以__开头的变量就是私有的

_desires = "有欲望" (程序员之间预定俗称)类私有的属性

私有属性和方法在当前类中可以查看及使用

子类不能继承父类的私有方法和属性

私有的目的就是保护数据的安全性

强制查看私有方法或属性:(但是非常不推荐使用)

_类名私有变量名

_类名私有方法名

class Human:    live = '有理想'  # 类共有的属性    __desires = '有欲望'  # (程序级别)类私有的属性    _desires = '有欲望'  # (程序员之间约定俗称)类私有的属性    def __init__(self,name,age,sex,hobby):        self.name = name        self.age = age        self.sex = sex  # 对象的共有的属性        self.__hobby = hobby  # 对象的私有属性    def func(self):        # 类内部可以查看对象的私有属性        print(self.__hobby)    def foo(self):        # 类内部可以查看类的私有属性        print(self.__desires)    def __abc(self):  # 私有方法 只有内部可以使用        print('is abc')obj = Human('beauty',28,'man','woman')print(obj.name)print(Human.live)Huamn.live = '无脑'print(Human.live)obj.__abc()   # 会报错 因为外部不可以调用类的私有方法print(Human.__desires)

 

 

 

 

 

 

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!