我正在计划一个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类中为其创建新方法。 注意:Bar的大多数行为都是相同的。我只想在Foo.a.do_something()
中做一个额外的步骤答案 0 :(得分:1)
不是干净的。总体而言,这似乎是个坏主意。您怎么知道do_something
的行为方式?这将是调试的噩梦。
如果do_something
需要做一些不同的事情,请子类Bar
并在每个子类中以不同的方式实现。
class Bar:
def do_something():
# Does something
class Bar2(Bar):
def do_something():
# Does something else