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'}