覆盖方法还是派生?

时间:2018-05-01 14:32:23

标签: 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

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

1 个答案:

答案 0 :(得分:2)

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