您好,登錄后才能下訂單哦!
需要拿到一個函數里所有的傳入的參數,并且存在一個字典里。
下面的方法確實拿到了字典,不過要求函數必須用非固定參數**kwargs定義,而且對調用函數很不友好
def func1(**kwargs):
d = 'local_d'
return kwargs
res = func1(a=1, b=2, c=3)
print(res)
# 結果:
# {'a': 1, 'b': 2, 'c': 3}
locals()函數會以字典類型返回當前位置的全部局部變量,看著很符合現在的需求:
def func2(a, b, c):
d = 'local_d'
return locals()
res = func2(1, 2, 3)
print(res)
# 結果:
# {'d': 'local_d', 'c': 3, 'b': 2, 'a': 1}
想著很好,但是實際用的時候,最后會把函數內部其他變量也返回。不完美,只想要入參的字典。
最后機制的小伙伴想到了,其實還是上面的方法:
def func3(a, b, c):
kwargs = locals()
d = 'local_d'
return kwargs
res = func3(1, 2, 3)
print(res)
# 結果
# {'c': 3, 'b': 2, 'a': 1}
其實就是在函數的開始,其他變量還沒有出現的時候,就想把當前的locals()取出來,等到最后再返回。完美!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。