Python:当一个类的实例方法在另一个类中使用时,是否可以覆盖/扩展它



我正在计划一个Python项目。我将拥有使用其他类实例的类。是否可以覆盖/扩展另一个类中的方法,如以下所示:

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类实例,因此我无法在Bar类中为其创建新方法。NB酒吧的大多数行为都是一样的。我只想在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

最新更新