標籤:需要 ida 怎麼辦 元素 targe .com 調用 允許 gdk
在Python函數中,還可以定義可變參數。
如:給定一組數字a,b,c……,請計算a2 + b2 + c2 + ……。
要定義出這個函數,我們必須確定輸入的參數。由於參數個數不確定,我們首先想到可以把a,b,c……作為一個list或tuple傳進來,這樣,函數可以定義如下:
def calc(numbers): sum = 0 for n in numbers: sum = sum + n * n return sum
但是調用的時候,需要先組裝出一個list或tuple:
>>> calc([1, 2, 3])14>>> calc((1, 3, 5, 7))84
如果利用可變參數,調用函數的方式可以簡化成這樣:
>>> calc(1, 2, 3)14>>> calc(1, 3, 5, 7)84
所以,我們把函數的參數改為可變參數:
def calc(*numbers): sum = 0 for n in numbers: sum = sum + n * n return sum
定義可變參數和定義list或tuple參數相比,僅僅在參數前面加了一個*號。在函數內部,參數numbers接收到的是一個tuple,因此,函數代碼完全不變。但是,調用該函數時,可以傳入任意個參數,包括0個參數:
>>> calc(1, 2)5>>> calc()0
如果已經有一個list或者tuple,要調用一個可變參數怎麼辦?可以這樣做:
>>> nums = [1, 2, 3]>>> calc(nums[0], nums[1], nums[2])14
這種寫法當然是可行的,問題是太繁瑣,所以Python允許你在list或tuple前面加一個*號,把list或tuple的元素變成可變參數傳進去:
>>> nums = [1, 2, 3]>>> calc(*nums)14
Python中可以在tuple、list、dict前加*號,作用是將變數解開成若干個獨立的參數,傳入函數,還有類似的有兩個星號,是將字典解開成獨立的元素作為形參。
def add(a, b): return a+b data = [4,3]print add(*data)#equals to print add(4, 3)data = {‘a‘ : 4, ‘b‘ : 3}print add(**data)#equals to print add(4, 3)
Python函數中的可變參數