在Python包中重新定义继承类的方法

时间:2013-06-18 22:16:38

标签: python module

假设我有一个Python包,如下所示:

/summary
    __init__.py
    summary.py
    /temperature
        __init__.py
        temperature.py

TempSummary类(在temperature.py中定义)继承自基类Summary(在summary.py中定义),分别定义为:

class TempSummary(Summary):
    def __init__(self, f):
        bar(f)

class Summary:
    def __init__(self, f):
        foo(f)

是否会将summary.py的内容复制到/ temperature并在复制的文件中修改那里的类方法,还是更加Pythonic继承TempSummary然后开始修改方法的行为?

1 个答案:

答案 0 :(得分:0)

复制代码违反DRY(不要重复自己)。以平行方式维护两组代码成为一场噩梦。

这是OOP方法,用于sublcass并覆盖您选择的方法来创建自定义功能。

如果您要扩展某些Summary方法,请记住call the parent method