簡體   English   中英

程序在將字典傳遞給函數參數時顯示TypeError

[英]Program shows TypeError while passing a dictionary into a function argument

def f(**kwargs):
   print(kwargs)

d = {'0': 'a', '1': 'b', '2': 'c', '3': 'd'}   
f(**d)   # {'0': 'a', '1': 'b', '2': 'c', '3': 'd'}

d = {0: 'a', 1: 'b', 2: 'c', 3: 'd'}   
f(**d)   # TypeError: f() keywords must be strings

在這里,我在將字典鍵值更改為int類型時遇到TypeError。 我可以知道,為什么會出現此錯誤嗎?

在第二種情況下的問題是,您正在做相當於

f(0 = 'a', 1 = 'b', 2 = 'c', 3 = 'd')

這沒有多大意義,因為(如錯誤所報道)變量標識符不能僅使用數字來命名。 函數需要正確的變量標識符,但您使用的是數字,因此會引發錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM