哪个是将args传递给类方法的正确选项

时间:2014-02-01 19:32:44

标签: python

哪个是正确的? 因为我有些疑惑:(

class Foo():
    def __init__(self):
        self.bar = BAR()
    def get_foo(self, bar):
        return bar
    def foo_bar(self):
        bar = self.bar
        self.get_foo(bar)

class Foo():
    def __init__(self):
        self.bar = BAR()
    def get_foo(self):
        bar = self.bar 
        return bar
    def foo_bar(self):
        bar = self.bar
        self.get_foo()

当然,我们假设在两种方法中都会多次使用bar。

1 个答案:

答案 0 :(得分:1)

当然,这取决于。如果使用与对象中存储的get_foo不同的bar来调用self.bar是有意义的,那么您当然希望将其作为参数接受。另一方面,如果您仅使用self.get_foo(self.bar)作为值,那么接受它作为一个要求您始终执行get_foo的参数是没有意义的。

如果你的self.bar真的只返回self.bar,你应该考虑彻底摆脱它。您可以直接访问{{1}}。