覆盖方法还是派生方法?



对于给定的类,覆盖一种方法(即为其分配另一个函数(或从该类派生并在新类中覆盖它是更好/更高级/更符合 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

追问:魔术方法的答案不同吗?

第二种方式更可取,因为它不会改变基类,而是扩展它,看看开放/封闭原则。

最新更新