Python: 是否可以override/extend一个class的实例方法用于另一个class?

Python: Is it possible to override/extend an instance method of one class when it is used in another class?

我正在计划一个 Python 项目。我将让 classes 使用其他 classes 的实例。是否可以从另一个 class 中 override/extend 一个方法,像这样:

class Foo:

    a = Bar()
    b = Bar()
    c = Bar()

class Baz:

    x = Bar()
    y = Bar()
    z = Bar()

class Qux:

    p = Bar()
    q = Bar()
    r = Bar()

class Bar:

    def __init__(self):
        pass

    def do_something():
        # Thing to do

Baz.x.do_something() # Does the same thing 
Qux.p.do_something() # Does the same thing

Foo.a.do_something() # Does something slightly different

稍微不同的行为将取决于 Foo class 实例,因此我无法在 Bar class 中为其创建新方法。 注意 Bar 的大部分行为都是相同的。我只想在 Foo.a.do_something()

中多做一步

不是以干净的方式。总的来说,这似乎是个坏主意。您如何知道 do_something 何时表现如何?这将是调试的噩梦。

如果 do_something 需要做一些不同的事情,继承 Bar 并在每个子类中以不同的方式实现它。

class Bar:    
    def do_something():
        # Does something

class Bar2(Bar):    
    def do_something():
        # Does something else