考虑以下示例:
class Foo(object):
def bar(self):
return "bar"
class Bar1(object):
def __init__(self):
self.foo = Foo()
def bar(self):
return self.foo.bar()
class Bar2(object):
def __init__(self):
self.bar = Foo().bar
Bar1().bar() == Bar2().bar()
应该更喜欢 Bar1 和 Bar2 中的哪一个?替代方案的优缺点是什么?
我想问的是有一个实例只有一个方法,该方法用于另一个实例。我应该明确表示它确实是一种“方法”(Bar1)还是应该保存一个函数调用和一些复杂性(Bar2)?