0

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

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

我得到“自我未定义”

这是一个相关的问题:参数的默认值作为实例方法的结果

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

4

1 回答 1

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__()方法,则可能会重新绑定本地名称。

于 2013-08-22T03:30:47.210 回答