我使用Python 3,我对kwargs有小问题。是否可以将实例属性用作默认参数值?我的意思是这样的:
class foo:
def __init__(self, a,b):
self.a = a
self.b = b
def setNewA(self, a=self.a):
print(a)
但我有一个错误:
NameError: name 'self' is not defined
如果我使用课程名称,我有:
AttributeError: type object 'foo' has no attribute 'a'
我知道另一种方法是使用这样的东西:
def setNewA(self, a=None):
a = a or self.a
print(a)
但也许有办法做到这一点?
答案 0 :(得分:0)
不确定这是否适合您的用例,但是这个怎么样?
>>> class foo:
... b = 1
...
... def setNewA(self, a=b):
... print(a)
>>>
>>> f = foo()
>>> f.setNewA()
1
>>> f.setNewA(2)
2