Python入门-面向对象三大特性-多态
Pyhon不支持多态并且也用不到多态,多态的概念是应用于Java和C#这一类强类型语言中,而Python崇尚“鸭子类型”。
python作为一个动态语言,没有强类型的检查,而是以鸭子类型的方式提现,在执行的时候python不严格要求你必须是继承指定的父类而来,只要在调用的时候你有相应的方法和属性就可以了,长的像鸭子你就是鸭子。
#python是动态类,不需要继承父类,只要有共同的方法即可 class Cat(object): def say(self): print("一只猫") class Dog(object): def say(self): print("一只狗") class Duck(object): def say(self): print("一只鸭子") animal = Cat() animal.say() print("*"*50) animal_list = [Cat, Dog, Duck] for i in animal_list: i().say()
抽象类-ABC模块
#当父类有某个方法,要求子类必须也要有这个方法,如何实现呢,使用abc模块即可 import abc class Ca(metaclass=abc.ABCMeta): @abc.abstractmethod def get(self, k): pass @abc.abstractmethod def set(self, k, v): pass class Redis2(Ca): pass r = Redis2()
#如果子类,没有实现父类的某个方法,初始化就报错 #TypeError: Can't instantiate abstract class Redis2 with abstract methods get, set

浙公网安备 33010602011771号