面试之——面向对象相关
封装,继承,多态
多态
python天生多态
def func(arg): arg.send() #只要有.send()方法,就够了 # 参数: 数字,字符串,类, 对象.... # 鸭子模型指的就是它, 鸭子.呱呱叫(arg.呱呱)
super
super() 函数和父类没有实质性的关联。
super 的工作原理如下:
def super(cls, inst): mro = inst.__class__.mro() return mro[mro.index(cls) + 1] 其中 cls 代表类, inst 代表实例, super 函数做了两件事: 1. 获取实例对象 inst 的类的 MRO 列表 2. 查找 cls 在当前 MRO 列表中的 index ,并返回它的下一个类,即 mro[index + 1] 当使用 super(cls, inst) 时, Python 会在 inst 的 MRO 列表上搜索 cls 的下一个类. 可以看出, 事实上 super 函数和父类没有实质性的关联.
静态字段
静态字段和函数都是在类创建的时候创建一次
class Foo: name = 'zhou' print(name) # 创建类的时候,就会打印 def func(self): return 'xx'
浙公网安备 33010602011771号