0
我使用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)
但是m有沒有辦法做到這一點?
您缺少兩個方法定義中的'self'參數。不,你不能使用實例屬性作爲默認參數;在創建方法時它們不存在。 – jonrsharpe
你的方法會錯過一個'self'作爲他們的第一個參數,在那裏存儲對象的引用。請參閱[這裏](https://docs.python.org/3/tutorial/classes.html#method-objects)。 – zegkljan
你是對的,我在我的帖子中修正了錯別字 – voldi