定义的类与基类可以可以放在不同的模块,例如:
定义类 DerivedClassName,继承modname模块中的BaseClassName类
class DerivedClassName(modname.BaseClassName):
派生类定义的执行过程和基类是一样的。构造派生类对象时,就记住了基类。这在解析属性引用的时候尤其有用:如果在类中找不到请求调用的属性,就搜索基类。如果基类是由别的类派生而来,这个规则会递归的应用上去。
方法引用按如下规则解析:搜索对应的类属性,必要时沿基类链逐级搜索,如果找到了函数对象这个方法引用就是合法的。
例子中包括personel.py、little.py 两个模块,在little.py模块中没有young方法,而父类person中有该方法,则python会搜索父类中的方法,并调用该方法。