python關於 星號引數傳遞的問題

2021-09-27 02:25:33 字數 441 閱讀 8204

通過**傳遞過來的是字典序列,比如

x=print(x)

結果是:,沒有出錯

x=print(x)

結果是: 也沒有提示出錯

但當以上情況作為**引數傳遞時就會有區別,雖然上面兩種字典序列都是合法的

比如如下:

def f(**d):

print(d)

當使用第一種情況時,即這個字典序列 x=

f(**x)

結果typeerror: f() keywords must be strings

當使用第二種情況時,即這個字典序列 x=

f(**x)

結果是正常執行

總結:當把字典序列做為引數傳遞給兩個星號引數時(**d),字典序列中的鍵,即key必須是字元型,當傳給不帶星號的函式引數時,不存在此情況,兩種形式都能正常執行。

Python 引數傳遞中的星號

python 支援4種引數傳遞的方式 1.定義 f a,b 呼叫 f 1,2 2.定義 f a,b 9 呼叫 f 1 或 f 1,2 第二個引數未給出的話,使用預設的值 9 3.定義 f a 呼叫 f 1 或 f 1,2 或f 1,2,3 這種方式可以接收任意多個引數儲存到名為a的元組中,在函式內部...

python 函式引數的傳遞 引數帶星號的說明

先看第乙個問題,在python中函式引數的定義主要有四種方式 1.f arg1,arg2,這是最常見的定義方式,乙個函式可以定義任意個引數,每個引數間用逗號分割,用這種方式定義的函式在呼叫的的時候也必須在函式名後的小括號裡提供個數相等的值 實際引數 而且順序必須相同,也就是說在這種呼叫方式中,形參和...

python 函式引數的傳遞 引數帶星號的說明

python中函式引數的傳遞是通過賦值來傳遞的。函式引數的使用又有倆個方面值得注意 1.函式引數是如何定義的 2.在 呼叫函式的過程中引數是如何被解析 先看第乙個問題,在python中函式引數的定義主要有四種方式 1.f arg1,arg2,這 是最常見的定義方式,乙個函式可以定義任意個引數,每個引...