一、多态 :python 天生支持多态
多态指的是一类事物有多种形态 eg:文件有多种形态:文本文件,可执行文件
鸭子类型:python中崇尚鸭子类型,不崇尚根据继承所得来的相似
优点 : 松耦合 每个相似的类之间都没有影响
缺点 : 太随意了,只能靠自觉
#eg序列类型有多种形态:字符串,列表,元组,但他们直接没有直接的继承关系 #eg:如果两个类刚好相似,并不产生父类的子类的兄弟关系,而是鸭子类型 #eg:list tuple 这种相似,是自己写代码的时候约束的,而不是通过父类约束的
class Tuple: def __len__(self): return 'aaa' class List: def __len__(self): return 'qqq' def len(a): return a.__len__() l=list() len(l)
二、封装: 隐藏对象的属性和实现细节,仅对外提供公共访问方式。
# 【好处】 """ 1. 将变化隔离; 2. 便于使用; 3. 提高复用性; 4. 提高安全性; """ # 【封装原则】 """ 1. 将不需要对外提供的内容都隐藏起来; 2. 把属性都隐藏,提供公共方法对其访问。 """
class Person: __key=123 # 私有 静态属性 def __init__(self,name,passwd): self.name=name self.__passwd=passwd # 私用 动态属性 def __get_passwd(self): #私有方法 return self.__passwd def login(self): self.__get_passwd() #支持每部调用查看 #私有方法不能再外部调用,但是我们也是可以加上类名就能调用了,但是不建议使用 join=Person('join',123) print(join._Person__passwd) #123
三、小结
# 所有的私有 都是在变量的左边加上双下划綫 # 对象的私有属性 # 类中的私有方法 # 类中的静态私有属性 # 所有的私有的 都不能在类的外部使用