class Cat: def drink(self): print(f'{self.name}猫咪喝水')
def eat(self):
print(f'{self.name}猫咪吃饭')
bluecat=Cat() bluecat.name='1' bluecat.eat() bluecat.drink()
redcat=Cat() redcat.name=2 redcat.drink() redcat.eat()
class Cat: def init(self,name,age): self.name=name self.age=age def info(self): print(f'{self.name}喝水,{self.age}年龄')
bulucat=Cat('蓝猫','2') bulucat.info()
bulucat=Cat('黑猫','3') bulucat.info()
class Cat: def init(self,name,age): self.name=name self.age=age def str(self): return (f'{self.name}喝水,年龄{self.age}')
bulucat=Cat('蓝猫','2') print(bulucat)
blackcat=Cat('黑猫','3') print(blackcat)
A类,称为父类(基类),B类,称为子类(派生类)
覆盖:父类中的功能完全抛弃不要,重新书写 print('新的功能') 扩展:父类中的功能还调用,只是添加一些新的功能super().方法()
class dog: def eat(self): print('吃苹果') class small_dog(dog): def eat(self): print('覆盖后吃香蕉,下面扩展后继续吃苹果') super().eat() gou=dog() gou.eat() xiaogou=small_dog() xiaogou.eat()
一种写代码调用方法的技巧;同一个方法,传入不同对象,执行得到不同结果
使用:类对象.属性名=属性值 or 类名.属性名=属性值
类对象.属性名 or 类名.属性名
实例方法:使用self 必须使用实例方法 类方法:在方法名字的上方加上@classmethod 静态方法:字的上方加上@staticmethod,一般没有参数