python - 重写方法还是派生?

标签 python python-3.x oop

对于给定的类,根据 Python Zen 覆盖一个方法(即为其分配另一个函数)或从该类派生并在新类中覆盖它是更好/更奇特/更多吗?

所以这个:

from foo import Bar
def mybaz(self):
    pass
Bar.baz = mybaz

或者:

from foo import bar
class Mybar(Bar):
    def baz(self):
        pass

如果有区别,请引用Python3

跟进:魔术方法的答案是否不同?

最佳答案

第二种方式更可取,因为它不会更改基类,而是扩展它,看看 open/closed principle.

关于python - 重写方法还是派生?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50118368/

相关文章:

java - UML - 基数和菱形关系图解释

python - 如何让TensorFlow的map()函数返回多个值?

python - 在 python 中继续播放 youtube 剪辑

用于简单表达式的 Python 正则表达式分词器

javascript - image.onload 到方法中

PHP、jQuery 和 Ajax 面向对象

python - 循环读取大文件

javascript - Python 中的浏览器 'window' 对象等效吗?

python - 如何在没有外部模块的情况下跨 pythons 2 和 3 透明地处理字符串?

python - 如何从 Pandas 中的另一列扩展范围的数据表