对于给定的类,根据 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/