說說在 Python 中如何傳遞任意數量的實參

1 用法
在定義函式時,加上這樣一個形參 "*形參名",就可以傳遞任意數量的實參啦:
def make_tags(* tags): '''為書本打標籤''' print('標籤:'+str(tags)) make_tags('藝術','藝術史')
執行結果:
標籤:('藝術', '藝術史')
形參名 *tags
中的星號會讓 Python 建立一個名為 tags 的空元組, 並將函式所收到的所有值都封裝在這個元組中 。
注意:即便函式只收到一個值,也會被放入元組中。
2 聯合位置實參與任意數量實參
如果要讓函式接受多種型別的實參, 那就必須在函式定義中將接收任意數量實參的形參定義放在最後 。因為 Python 會先匹配位置實參和關鍵字實參, 然後再將多餘的實參放入最後一個形參元組中 。
def make_tags(book_name, *tags): '''為某本書打標籤''' print('book_name=' + book_name) print('tags=' + str(tags)) make_tags('世界美術名作二十講 : 插圖珍藏本','藝術') make_tags('世界美術名作二十講 : 插圖珍藏本','藝術', '藝術史')
執行結果:
book_name=世界美術名作二十講 : 插圖珍藏本
tags=('藝術',)
book_name=世界美術名作二十講 : 插圖珍藏本
tags=('藝術', '藝術史')
3 任意數量關鍵字實參
有時候,預先並不清楚傳遞給函式的會是什麼樣的引數。 這時, 我們就可以將函式編寫成能夠接受任意數量的鍵—值對。
def create_account(name, pwd, **others): '''建立賬戶''' account = {} account['name'] = name account['pwd'] = pwd for key, value in others.items(): account[key] = value return account account = create_account('早安', '1', sex='女', age='20') print('account=' + str(account))
執行結果:
account={'name': '早安', 'pwd': '1', 'sex': '女', 'age': '20'}