【发布时间】:2013-03-07 07:16:00
【问题描述】:
您好,我正在尝试默认调用“nate is in the class”
我希望能够用默认值包装一个类的方法,这样开发者就不必再次设置默认值了。
但是下面的代码给了我一个错误:
Traceback (most recent call last):
File "", line 18, in
File "", line 9, in rtn
UnboundLocalError: local variable 'var1' referenced before assignment
我已经尝试了大约一个小时,但我似乎无法让它工作。
代码如下:
class Bob(object):
def bob(self,var1='bob',var2=' is in the class'):
print var1,var2
def defalter(func):
def rtn(self=None,*args, **kwargs):
if not var1:
var1 = 'nate'
return rtn
b = Bob()
r = defalter(b.bob)
r()
【问题讨论】:
-
你有什么问题?
-
让上面的代码工作?
-
如果用户传递
var1和/或var2的显式值,您希望发生什么? -
在这种情况下覆盖新的默认值 'nate' 所以假设我发送了 'jane' 我希望 jane 成为新值