class A:
x = 520
def hello(self):
print('你好,我是A~')
class B:
x = 888
y = 100
def hello(self):
print("您好,我是B~")
class C(A, B):
pass
c = C()
c.x
>>>
520
c.hello()
>>>
你好,我是A~
c.y
>>>
100
组合
class Turtle:
def say(self):
print('我是一只小乌龟,我不会说话')
class Cat:
def say(self):
print('我是一只小猫,我会喵喵喵~')
class Dog:
def say(self):
print('我是一只小狗,我会汪汪汪~')
class Garden():
t = Turtle()
c = Cat()
d = Dog()
def say(self):
self.t.say()
self.c.say()
self.d.say()
g = Garden()
g.say()
>>>
我是一只小乌龟,我不会说话
我是一只小猫,我会喵喵喵~
我是一只小狗,我会汪汪汪~ 本节讲了OOP的第二个基本特征——继承,即使用现有类的所有功能,并在无需重新编写代码的情况下对功能进行扩展。通过继承创建的新类称为子类,被继承的类称为父类(或基类、超类)。子类的实例化对象可以访问父类定义的属性和方法,子类定义的同名属性和方法会覆盖父类。可使用isinstance()函数来判断一个对象是否属于某个类,还可使用issubclass()函数来判断一个类是否属于另一个类的子类。一个子类可以同时继承多个父类,此即“多重继承”。多重继承时访问顺序为从左向右,即优先访问左边的父类;只有在当前类及左边的父类中均找不到需要访问的属性或方法时,才会访问右边的(下一个)父类。
本节最后还讲解了组合,即在新类中实例化其他类的对象,定义新方法,分别调用实例化对象各自的方法。需要注意的是,调用实例化对象方法前的“self.”不能省略,否则便会报错,称对象未定义。至于其中的奥秘,将在下一节揭晓! 为啥组合的这个里面写成self.t.say() 课后作业的第6题,运行不出来。 siazb8590 发表于 2023-1-28 14:02
课后作业的第6题,运行不出来。
题目是没有问题的,具体是提示什么错误信息呢? 继承父类的其他写法有什么 {:10_245:}{:10_245:}{:10_245:} 打卡学习,比较艰难,但我会坚持!{:10_257:} 重拾Python,每天上班都有时间摸鱼学习 为什么都要鱼币
页:
[1]