Python 进阶
继承
使用继承扩展和复用代码
- 理解继承关系
- 子类继承父类属性方法
- 方法重写和 super()
继承基础
示例代码(可运行)
Python 0%
方法重写与 super
示例代码(可运行)
Python 0%
💡继承的意义
继承实现代码复用:父类放通用逻辑,子类放特有逻辑。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方法。
继承挑战
Python 0%
2 个测试用例
课后作业
员工体系
中等+20 XP
Employee基类,Manager和Developer子类。
员工体系
Python 0%
1 个测试用例