我正在通过 DiveIntoPython 并遇到了这个:
Java 和Powerbuilder 支持按参数列表重载函数,即一个类可以有多个同名但参数数量不同的方法,或不同类型的参数。其他语言(最著名的是 PL/SQL)甚至支持按参数名称重载函数;即一个类可以有多个具有相同名称和相同类型但参数名称不同的参数数量相同的方法。Python 都不支持这些。它没有任何形式的函数重载。方法仅由它们的名称定义,每个类只能有一个具有给定名称的方法。所以如果一个后代类有一个
__init__
方法,它总是会覆盖祖先__init__
方法,即使后代使用不同的参数列表定义它。同样的规则适用于任何其他方法。
这不是子类的__init__
方法总是会覆盖超类的__init__
方法的主要缺点吗?因此,如果我正在初始化一些变量并在一个类中调用一些函数,那么我派生它的一个子类,我必须重新初始化所有的变量并在class1
' s中调用这些函数?__init__
class2(class1)
class1
class2
__init__
我很确定我误解了这一切,所以如果有人能澄清这一点,那就太好了。