[問題現象]
在一次調用修飾函數中出現了問題,折騰了一下午,一直報錯 TypeError: got multiple values for argument
只是很簡單的調用
from tsu2Runner import AndroidActions auto = AndroidActions() auto.log(1, 2, text='應用市場', name='lucy')
class AndroidActions(object): def a(self, name, *args, **kwargs): print('i am a') print(name) print(args) print(kwargs) def log(self, fun): def wrapper(self, *args, **kwargs): print(args) # fun(self, *args, **kwargs) P = AndroidActions() P.a('123', *args, **kwargs) fun(self, *args, **kwargs) pass return wrapper
經過翻閱查找,意思是傳參錯誤,但是並不知道是哪里錯了,因為看代碼是完全沒問題的!!!自己在另一邊寫了測試代碼也完全可以運行的,但是在項目代碼中就會報錯
[問題原因]
折騰了一下午,最后依靠谷爹進行一番查閱找到了原因
原因是字典d里面還存在關鍵字'name‘,python解釋器報錯
[解決辦法]
在傳參的時候,避免使用python自帶的常用關鍵字