在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Python/ 新手求教:這種情況下 Python 函數(shù)的關(guān)鍵字參數(shù),為什么不加引號(hào)?

新手求教:這種情況下 Python 函數(shù)的關(guān)鍵字參數(shù),為什么不加引號(hào)?

初學(xué) Python,求教:

def print_dict(**person):
        print(person)

print_dict( a ='jack', b ='rose')
# {'a': 'jack', 'b': 'rose'}

形參前加了兩個(gè)星號(hào),這樣 Python 會(huì)創(chuàng)建一個(gè)字典,用來裝實(shí)參。我有點(diǎn)不明白的是為什么調(diào)用函數(shù)的時(shí)候,參數(shù)是: a = "Jack" 而不是 "a" = "Jack" , a既然是要放在字典中的鍵,為什么不帶引號(hào)?

求解惑,非常感謝!

回答
編輯回答
青裙

“語法就是這樣,沒有為什么”——這樣的說法實(shí)在是憋屈死我了。幸好終于找到了自己能理解和接受的答案。
查了很多資料,我的理解是,這種語法是dict constructor構(gòu)建字典的一種方式:如果沒有給出位置參數(shù),則創(chuàng)建空字典。如果給出了位置參數(shù)并且它是一個(gè)映射對(duì)象,則將使用與映射對(duì)象相同的鍵值對(duì)創(chuàng)建一個(gè)字典。
這里的情況,就是通過構(gòu)造器創(chuàng)建字典。而構(gòu)造器確實(shí)就就這樣創(chuàng)建的,正如大家說的,語法就是這樣,折騰一圈又回來了哈哈,但是很值得。
參考:
python 文檔 4.10. Mapping Types — dict 鏈接在這里:https://docs.python.org/3/lib...
以及:
https://docs.python.org/3/tut...
理解的也不是很透徹,歡迎補(bǔ)充和更正。

2018年6月24日 02:36
編輯回答
安淺陌

如果加了引號(hào)就是字符串了,字符串是不能作為變量的,如果這里不用**person而是用"a" = "Jack",是會(huì)報(bào)SyntaxError錯(cuò)誤的

2018年2月10日 00:48
編輯回答
葬愛

字符串無法作為變量使用,所以不能"a"="jack"。

2018年5月23日 17:26
編輯回答
法克魷

沒有為什么,語法要求,如果你其它語言也學(xué)了,就不會(huì)有這種疑問了。記著就行了。

2017年1月6日 11:35
編輯回答
法克魷
print_dict( a ='jack', b ='rose')

這是“調(diào)用”,調(diào)用的格式就這樣,語法要求的,沒有為什么。跟后面是不是要把 a 作為一個(gè) dictkey 沒關(guān)系。

2017年9月22日 20:03