0
我需要將參數kargs都存儲在一個元組中,以便以後調用,所以在這種情況下,元組* args或args中的值是否合適?換句話說,將這項工作:我什麼時候使用** kwargs vs kwargs(* args vs args)?
def __init__(self, *args, **kwargs):
self._buildCalls = [
(self.__init__, args, kwargs)
]
self._building = False
def __getattr__(self, attr):
if self.building():
if hasmethod(self, attr):
return lambda *args, **kwargs: self.argSaver(attr, *args, **kwargs)
else:
return super().__getattr__(attr)
def argSaver(self, method, *args, **kwargs):
self._buildCalls.append((method, args, kwargs))
return method(*args, **kwargs)
你試過了 - 它有效嗎? – AChampion
您可以在答案[此處](http://stackoverflow.com/q/40498298/4014959)中找到有用的示例。 –
我不確定你真的明白'*'和'**'在做什麼。但是,是的,你將不得不在庫中存儲'args'和'kwargs'; '* args'和'** kwargs'不是你可以存儲的實際東西(而是分別在'args'和'kwargs'上執行另一個運算符)。 – poke