类的定义与继承
定义
1 2 3 4 5 6 7 8
| class Animal(): def __init__(self,name,age): self.name = name self.age = age def sleep(self): print(self.name+"在睡觉")
|
继承
因为python是多继承,所以使用super()需要参数表示哪个使用哪个父类
- 第一个参数代表当前类
- 第二个参数self代表实例
- 意思就是根据实例去找类的父类,不同的实例就会有不同的父类
- 使用super只会调用第一个父类
- 在python3中支持super()的写法
1 2 3 4 5 6 7 8 9
| class Cat(Animal): def __init__(self,name,age): super(Cat,self).__init__(name,age) def catch(self): print(self.name+"在抓老鼠") cat1 = Cat("xiaobai",1) cat1.catch()
|
方法重写和实例属性
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| class Animal(): def __init__(self,name,age): self.name = name self.age = age def sleep(self): print(self.name+"在睡觉")
class Cat(Animal): def __init__(self,name,age,hair_color): super().__init__(name,age) self.hair_color = Body(hair_color)
def catch(self): print(self.name+"在抓老鼠") def sleep(self): print(self.name+"趴着睡觉")
class Body(): def __init__(self,hair_color): self.hair_color = hair_color
cat1 = Cat("xiaobai",1,"white") cat1.catch()
|