欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python函數(shù)之任意數(shù)量的實(shí)參方式

 更新時(shí)間:2024年02月18日 11:04:06   作者:奔走在路上的小白  
這篇文章主要介紹了python函數(shù)之任意數(shù)量的實(shí)參方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

傳遞任意數(shù)量的實(shí)參

有的時(shí)候,預(yù)先不知道函數(shù)需要接受多少個(gè)實(shí)參,好在python允許函數(shù)從調(diào)用語(yǔ)句中收集任意數(shù)量的實(shí)參。

舉個(gè)實(shí)際的例子吧,比如,我們?cè)谧鱿銍妵姷碾s糧煎餅(嗯,聽(tīng)起來(lái)就香~),它可以添加很多喜歡的配料,但是我們不知道來(lái)的顧客想要加什么。

來(lái)看看一段code,函數(shù)只有一個(gè)形參*toppings,但不管調(diào)用語(yǔ)句提供了多少實(shí)參,這個(gè)形參都將它們統(tǒng)統(tǒng)收入囊中:

def make_jianbing(*toppings):
	print(toppings)

make_jianbing('regou')
make_jianbing('weilong','liang ge eggs','regou')
('regou',)
('weilong', 'liang ge eggs', 'regou')

形參名*toppings中的星號(hào)讓python創(chuàng)建一個(gè)名為toppings的空元組,并將收到的所有值都封裝到這個(gè)元組中。

函數(shù)體內(nèi)的print語(yǔ)句通過(guò)生成輸出來(lái)證明python能夠處理使用一個(gè)值調(diào)用函數(shù)的情形,也能處理使用三個(gè)值來(lái)調(diào)用函數(shù)的情形。

它以類似的方式處理不同的調(diào)用。

注意python將實(shí)參封裝到一個(gè)元組中,即便函數(shù)只收到一個(gè)值也如此。

來(lái)繼續(xù)擴(kuò)展一下:

def make_jianbing(*toppings):
	print("\nMakeing a jianbing with the following toppings: ")
	for topping in toppings:
		print("-" + topping)

make_jianbing('regou')
make_jianbing('weilong','liang ge eggs','regou')
Makeing a jianbing with the following toppings: 
-regou

Makeing a jianbing with the following toppings: 
-weilong
-liang ge eggs
-regou

不管函數(shù)收到的實(shí)參個(gè)數(shù)是多少個(gè),這種語(yǔ)法都非常管用。

結(jié)合使用位置實(shí)參和任意數(shù)量實(shí)參

如果要讓函數(shù)接受不同類型的實(shí)參,必須在函數(shù)定義中將接納任意數(shù)量實(shí)參的形參放在最后。

python先匹配位置實(shí)參和關(guān)鍵字實(shí)參,再將余下的實(shí)參都收集到最后一個(gè)形參中。

比如呢?

上面的例子中,可能一個(gè)顧客需要多份煎餅,就需要一個(gè)數(shù)量的實(shí)參,必須將該形參放在形參*toppings的前面:

def make_jianbing(count,*toppings):
	print("\nMaking a " + str(count) + "-ge jianbing with the following toppings: ")
	for topping in toppings:
		print("- " + topping)
		
make_jianbing(2,'kaochang')
make_jianbing(4,'weilong','shuanghuandan','kaochang')
Making a 2-ge jianbing with the following toppings: 
- kaochang

Making a 4-ge jianbing with the following toppings: 
- weilong
- shuanghuandan
- kaochang

上面函數(shù)定義,python將收到的第一個(gè)值存儲(chǔ)到count中,并將其他的所有值都存儲(chǔ)在toppings中。

使用任意數(shù)量的關(guān)鍵字實(shí)參

有時(shí)候啊,需要接受任意數(shù)量的實(shí)參,但預(yù)先不知道傳遞給函數(shù)的會(huì)是什么樣的信息。

遇到這樣的需求時(shí),可將函數(shù)編寫(xiě)成能夠接受任意數(shù)量的鍵-值對(duì)-----調(diào)用語(yǔ)句提供了多少就接受多少。

舉個(gè)創(chuàng)建用戶簡(jiǎn)介的例子:

比如會(huì)收到用戶的信息,但不知道會(huì)是什么樣的信息,比如下面示例中,函數(shù)build_profile()接受名和姓,同時(shí)還接受任意數(shù)量的關(guān)鍵字實(shí)參:

def build_profile(first, last, **user_info):
""" 創(chuàng)建一個(gè)字典,其中包含我們知道的有關(guān)用戶的一切 """
	profile = {}
	profile['first_name']  = first
	profile['last_name'] = last
	for key,value in user_info.items():
		profile[key] = value
	return profile
	
user_profile = build_profile('albert' , 'einstenin' , location='princeton',
								field = 'physics')
print(user_profile)

執(zhí)行結(jié)果:

{'field': 'physics', 'first_name': 'albert', 'location': 'princeton', 'last_name': 'einstenin'}

函數(shù)build_profile()的定義要求提供名和姓,同時(shí)允許用戶根據(jù)需要提供任意數(shù)量的名稱-值對(duì)。

形參**user_info中的兩個(gè)星號(hào)讓python創(chuàng)建一個(gè)名為user_info的空字典,并將收到的所有名稱-值對(duì)都封裝到這個(gè)字典中。

在這個(gè)函數(shù)中,可以像訪問(wèn)其他字典那樣訪問(wèn)user_info中的名稱-值對(duì)。

返回的字典包括用戶的名和姓,還有求學(xué)的地方和所學(xué)專業(yè)。調(diào)用這個(gè)函數(shù)時(shí)不管額外提供了多少個(gè)鍵-值對(duì),函數(shù)都能正確地處理。

編寫(xiě)函數(shù)時(shí),可以以各種方式混合使用位置實(shí)參,關(guān)鍵字實(shí)參和任意數(shù)量的實(shí)參。

練習(xí):

def make_guandongzhu(*foods):
	print(foods)
	for food in foods:
		print("\nYour select guan dong zhu include: " + food)
	
make_guandongzhu('luobo','moyusi','haidian')
make_guandongzhu('xianggujirouwan','yuzixianbei')
make_guandongzhu('yudoufu','doupi','eggs')
('luobo', 'moyusi', 'haidian')

Your select guan dong zhu include: luobo

Your select guan dong zhu include: moyusi

Your select guan dong zhu include: haidian
('xianggujirouwan', 'yuzixianbei')

Your select guan dong zhu include: xianggujirouwan

Your select guan dong zhu include: yuzixianbei
('yudoufu', 'doupi', 'eggs')

Your select guan dong zhu include: yudoufu

Your select guan dong zhu include: doupi

Your select guan dong zhu include: eggs

練習(xí):

def cars_info(changjia,xinghao,**infos):
	cars = {}
	cars['producer'] = changjia
	cars['car'] = xinghao
	for key,value in infos.items():
		cars[key] = key
		cars[value] = value
	return cars

car_info = cars_info('beiqi','hongqi',ranliao='qiyou',money='pianyi')
print(car_info)

{'car': 'hongqi', 'ranliao': 'ranliao', 'pianyi': 'pianyi', 'producer': 'beiqi', 'qiyou': 'qiyou', 'money': 'money'}

注意,函數(shù)參數(shù)中是兩個(gè)星號(hào)

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Conda命令教程小結(jié)

    Conda命令教程小結(jié)

    Conda 是一個(gè)開(kāi)源的包管理器和環(huán)境管理器,主要用于安裝和管理 Python 包及依賴項(xiàng),本文就來(lái)介紹一下Conda命令,具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-01-01
  • pytorch中dataloader 的sampler 參數(shù)詳解

    pytorch中dataloader 的sampler 參數(shù)詳解

    這篇文章主要介紹了pytorch中dataloader 的sampler 參數(shù)詳解,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,感興趣的小伙伴可以參考一下
    2022-09-09
  • 跟老齊學(xué)Python之私有函數(shù)和專有方法

    跟老齊學(xué)Python之私有函數(shù)和專有方法

    這篇文章是老齊學(xué)Python系列文章的一篇,主要介紹了跟私有函數(shù)和專有方法,需要的朋友可以參考下
    2014-10-10
  • Python numpy大矩陣運(yùn)算內(nèi)存不足如何解決

    Python numpy大矩陣運(yùn)算內(nèi)存不足如何解決

    這篇文章主要介紹了Python numpy大矩陣運(yùn)算內(nèi)存不足如何解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • PyTorch模型轉(zhuǎn)TensorRT是怎么實(shí)現(xiàn)的?

    PyTorch模型轉(zhuǎn)TensorRT是怎么實(shí)現(xiàn)的?

    今天給大家?guī)?lái)的是關(guān)于Python的相關(guān)知識(shí),文章圍繞著PyTorch模型轉(zhuǎn)TensorRT是怎么實(shí)現(xiàn)的展開(kāi),文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • 利用Python制作PPT的完整步驟

    利用Python制作PPT的完整步驟

    這篇文章主要給大家介紹了關(guān)于如何利用Python制作PPT的相關(guān)資料,主要利用的是python-pptx庫(kù),我們可以通過(guò)寫(xiě)腳本,來(lái)定時(shí)執(zhí)行更新ppt內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • selenium 多窗口切換的實(shí)現(xiàn)(windows)

    selenium 多窗口切換的實(shí)現(xiàn)(windows)

    這篇文章主要介紹了selenium 多窗口切換的實(shí)現(xiàn)(windows),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • python的三種等待方式及優(yōu)缺點(diǎn)小結(jié)

    python的三種等待方式及優(yōu)缺點(diǎn)小結(jié)

    這篇文章主要介紹了python的三種等待方式及優(yōu)缺點(diǎn)的相關(guān)資料,三種等待元素加載的方法分別是強(qiáng)制等待、隱式等待和顯式等待,并詳細(xì)比較了它們的優(yōu)缺點(diǎn),需要的朋友可以參考下
    2024-12-12
  • python實(shí)現(xiàn)AES和RSA加解密的方法

    python實(shí)現(xiàn)AES和RSA加解密的方法

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)AES和RSA加解密的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • python數(shù)字圖像處理數(shù)據(jù)類型及顏色空間轉(zhuǎn)換

    python數(shù)字圖像處理數(shù)據(jù)類型及顏色空間轉(zhuǎn)換

    這篇文章主要為大家介紹了python數(shù)字圖像處理數(shù)據(jù)類型及顏色空間轉(zhuǎn)換示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06

最新評(píng)論