傳遞實參和定義形參(所謂實參就是呼叫函式時傳入的引數,形參則是定義函式是定義的引數)的時候,你還可以使用兩個特殊的語法:``*`` ** 。
呼叫函式時使用* **
test(*args)* 的作用其實就是把序列 args 中的每個元素,當作位置引數傳進去。比如上面這個**,如果 args 等於 (1,2,3) ,那麼這個**就等價於 test(1, 2, 3) 。
test(**kwargs)** 的作用則是把字典 kwargs 變成關鍵字引數傳遞。比如上面這個**,如果 kwargs 等於 ,那這個**就等價於 test(a=1,b=2,c=3) 。
定義函式引數時使用* **
def test(*args):
...定義函式引數時 * 的含義又要有所不同,在這裡 *args 表示把傳進來的位置引數都裝在元組 args 裡面。比如說上面這個函式,呼叫 test(1, 2, 3) 的話, args 的值就是 (1, 2, 3) 。:
def test(**kwargs):
...類似的, ** 就是針對關鍵字引數和字典的了。 呼叫 test(a=1,b=2,c=3) 的話, kwargs 的值就是 了。
普通的引數定義和傳遞方式和 * 們都可以和平共處,不過顯然 * 必須放在所有位置引數的最後,而 ** 則必須放在所有關鍵字引數的最後,否則就要產生歧義了。
python中 的作用
python中,會把接收到的引數形成乙個元組,會把接收到的引數存入乙個字典。def print 1 input ids,attention mask,token type ids,intent label ids,slot labels ids print input ids input ids p...
python中yield的作用
以斐波那契數列為例 def fab max n,a,b 0,0,1 while n max yield b print b a,b b,a b n n 1 用for迴圈訪問 for n in fab 5 print n 1 1 2 3 5 yield 的作用就是把乙個函式變成乙個 generator...
Python中with as的作用
with as 語句的作用主要如下 1 解決異常退出時資源釋放的問題 2 解決使用者忘記呼叫close方法而產生的資源洩漏問題 也就是說,with as方法最適合容易偷懶或者馬虎的程式設計師了,從c c 過來的程式設計師沒少體驗過資源洩漏以及記憶體問題,而with as語句就可以方便地幫助你從苦海中...