Python-类的私有成员

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)

 

 

 

 

 

 

 

 

猜你喜欢

转载自www.cnblogs.com/womenzt/p/12419736.html