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

2024-09-29 17:19:30 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有一个结构如下的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并在复制的文件中修改类的方法,还是继承到TempSummary然后开始修改方法的行为更像Pythonic


Tags: 方法pyself定义fooinitdefbar
1条回答
网友
1楼 · 发布于 2024-09-29 17:19:30

复制代码违反DRY(不要重复)。并行地维护两组代码会变成一场噩梦

它是一种面向对象的方法,用于子类和重写您选择的方法来创建自定义功能

如果您正在扩展一些Summary方法,请记住call the parent method

相关问题 更多 >

    热门问题