编码风格:使用参数或实例变量?

时间:2010-10-26 23:09:58

标签: coding-style

我经常有函数接受参数,将实例变量设置为该参数,然后执行其他操作,例如:

def updateFoo(self, foo):
    self.foo = foo
    fooProcessor1(foo)
    fooProcessor2(self.foo)

您是否更喜欢传递参数本身,如fooProcessor1或新设置的实例变量,如fooProcessor2?为什么或为什么不呢?

2 个答案:

答案 0 :(得分:2)

编码员应该是懒惰的。自。在凌晨1点输入太多了。

答案 1 :(得分:2)

一个名为setFoo()的函数除了设置foo之外不应该做任何事情,除非它正在计算和缓存从foo派生的值,在这种情况下我会建议以下内容:< / p>

  def setFoo(self, foo):
      self.foo = foo
      self.__fooUpdated()

  def __fooUpdated(self):
      # Recompute values derived from foo, dispatch signal to listeners, etc.

在您建议的选项中,我更喜欢fooProcessor1(foo)。也就是说,这主要取决于个人偏好。只要你保持一致,我认为这并不重要。