如何在方法中设置默认参数?

时间:2013-08-22 03:25:56

标签: python oop parameters default

我希望此方法更新某个值,除非传递另一个值,它应该更新。以下是我想要做的一个例子:

def update_t(self,t=self.t):  
    "If nothing is passed, then the default parameter is the attribute self.t"
    t=t+1  

我得到“自我未被定义”

这是一个相关的问题:default value of parameter as result of instance method

...但是由于此值已更新,我不能将其设为None。我也不能成为一个对象,因为这会给我一个错误(不能添加对象和int)。有任何想法吗?感谢。

1 个答案:

答案 0 :(得分:2)

使用可以解析的对象。例如None

def update_t(self, t=None):  
  "If nothing is passed, then the default parameter is the attribute self.t"
  if t is None:
    self.t += 1
  else:
    t += 1

请注意,这可能不会更改传递给它的值,因为如果对象没有__iadd__()方法,本地名称可能会反弹。