20 分钟
Python 进阶

继承

使用继承扩展和复用代码

  • 理解继承关系
  • 子类继承父类属性方法
  • 方法重写和 super()

继承基础

示例代码(可运行)

方法重写与 super

示例代码(可运行)
💡继承的意义

继承实现代码复用:父类放通用逻辑,子类放特有逻辑。is-a关系用继承(猫是动物),has-a关系用组合(车有引擎)。

预测输出
class A:
    def f(self): return 1
class B(A):
    def f(self): return 2
b = B()
print(b.f())
找 Bug子类重写__init__时没调用super().__init__(),父类属性不会初始化。
class Parent: def __init__(self, x): self.x = x class Child(Parent): def __init__(self, x, y): self.y = y
填空题填写空白处的代码
class Animal: pass class Dog(): pass
选择题

super() 的作用?

选择题

Python多继承时,父类方法的查找顺序由什么决定?

资深工程师加餐

底层原理 · 大厂视角 · 工程经验,点卡片展开

内层函数(或 lambda)捕获的是外层变量本身,而不是定义那一刻的值;循环里定义的多个函数,循环结束后调用往往都拿到最后的值。解决办法是用默认参数 f(x=x) 立即绑定,或用工厂函数包一层。配合 LEGB 作用域顺序(局部→外层→全局→内建)理解,90% 的作用域谜题都能解开。

挑战任务

继承挑战

简单+50 XP

设计Shape基类和Circle/Rectangle子类,都有area方法。

继承挑战
2 个测试用例

课后作业

员工体系

中等+20 XP

Employee基类,Manager和Developer子类。

员工体系
1 个测试用例