浅层理解
深层理解
- 指的是面向对中,子类不需要显示的继承某个类,只要有某个的方法和属性,那我就属于这个类
编程语言中的鸭子类型说明
-
- 假设有个鸭子类Duck类,有两个方法,run,speak方法
-
- 假设又有一个普通鸭子类,PDuck,如果它也是鸭子,它需要继承Duck类,
- 只要继承了鸭子类,什么都不需要写,普通鸭子类的对象就是鸭子这种类型;
- 如果不继承,普通鸭子类的对象就不是鸭子这种类型
-
- 假设又有一个唐老鸭子类,TDuck,如果它也是鸭子,它需要继承Duck类,
- 只要继承了鸭子类,什么都不需要写,唐老鸭子类的对象就是鸭子这种类型;
- 如果不继承,唐老鸭子类的对象就不是鸭子这种类型
python的鸭子类型
- python中的鸭子类型推崇的与其他编程语言有大不同
- python中的鸭子类型:不需要显示的继承某个类,只要我的类中有run和speak方法,我就是鸭子这个类
python中的鸭子类型存在的小问题
- 如果使用python鸭子类型的写法,如果方法写错了,它就不是这个类型了,会有问题
python如何解决问题
- 方式一:abc模块,装饰后,必须重写方法,不重写就报错
- 方式二:drf源码中使用的:父类中写这个方法,但没有具体实现,直接抛异常
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)