Python中的Function定義方法第2/2頁(yè)
對(duì)于變量z,它就是nonlocal級(jí)別的。如果在inner中需要使用z,則需要使用nonlocal關(guān)鍵字進(jìn)行聲明。
講完了變量的作用范圍,就該講講函數(shù)的參數(shù)問(wèn)題了。 Python中的函數(shù)可以0-n個(gè)參數(shù),這和其他編程語(yǔ)言一樣沒(méi)有什么特別之處。同樣的,可以為函數(shù)參數(shù)指定默認(rèn)值。例如:
def power(num,power = 1):
print(num ** power)
power(2)
power(2,2)
#*************
#運(yùn)行結(jié)果
2
4
對(duì)于第一次調(diào)用power(2),并沒(méi)有指定第二個(gè)參數(shù)power的值,根據(jù)輸出結(jié)果可知,函數(shù)使用了默認(rèn)值。第二次調(diào)用power(2,2),因?yàn)榻o定了第二個(gè)參數(shù)的值,所以,power的值為2。
在這里需要注意的是,在python中,對(duì)于給你默認(rèn)值的參數(shù),一定要在參數(shù)列表的最后。也就是說(shuō),在參數(shù)列表中,如果出現(xiàn)了給定默認(rèn)值的參數(shù)后,就不能在出現(xiàn)沒(méi)有給定默認(rèn)值的參數(shù)。
對(duì)于參數(shù)賦值,可以使用關(guān)鍵字的方式賦值。例如:
def func(a,b=1,c=2):
print('a={0},b={1},c={2}'.format(a,b,c))
func(1)
func(1,2)
func(1,c=3)
func(b=2,a=4)
#*************
#運(yùn)行結(jié)果
a=1,b=1,c=2
a=1,b=2,c=2
a=1,b=1,c=3
a=4,b=2,c=2
可以通過(guò)指定參數(shù)名稱來(lái)對(duì)參數(shù)進(jìn)行賦值。
Python支持可變參數(shù)列表,首先看下面的程序:
def total(initial=5,*numbers,**keywords):
count = initial
for number in numbers:
count += number
for key in keywords:
count += keywords[key]
return count
print(total(10,1,2,3,vegetables=10,fruits=5))
#***************
#運(yùn)行結(jié)果
31
在上述程序中,值得關(guān)注的是*numbers和**keywords。在程序中,第一個(gè)參數(shù)10對(duì)應(yīng)第一個(gè)initial參數(shù)。接下來(lái)就是可變參數(shù)列表:其中1,2,3是一個(gè)序列,vegetables=10,fruits=5是字典。在Python中,*numbers表示的是:將1,2,3等或者更多的參數(shù)放入這個(gè)序列中;**keywords表示的是:將vegetables=10等或者更多的參數(shù)放入字典中。
相關(guān)文章
你需要學(xué)會(huì)的8個(gè)Python列表技巧
這篇文章主要介紹了8個(gè)常用的Python列表技巧,文中講解非常詳細(xì),幫助大家更好的學(xué)習(xí)Python,感興趣的朋友可以了解下2020-06-06flask路由分模塊管理及自定義restful響應(yīng)格式詳解
這篇文章主要為大家介紹了flask路由分模塊管理及自定義restful響應(yīng)格式詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08關(guān)于你不想知道的所有Python3 unicode特性
我的讀者知道我是一個(gè)喜歡痛罵Python3 unicode的人。這次也不例外。我將會(huì)告訴你用unicode有多痛苦和為什么我不能閉嘴。我花了兩周時(shí)間研究Python3,我需要發(fā)泄我的失望。在這些責(zé)罵中,仍然有有用的信息,因?yàn)樗涛覀內(nèi)绾蝸?lái)處理Python3。如果沒(méi)有被我煩到,就讀一讀吧2014-11-11Python3.6 + TensorFlow 安裝配置圖文教程(Windows 64 bit)
這篇文章主要介紹了Python3.6 + TensorFlow 安裝配置的教程(Windows 64 bit),本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-02-02解決Python中字符串和數(shù)字拼接報(bào)錯(cuò)的方法
相信很多的新手朋友都會(huì)碰到python連接字符串和數(shù)字的問(wèn)題,因?yàn)閜ython是強(qiáng)類型的語(yǔ)言,如果你把一個(gè)字符串和數(shù)字直接做連接的操作的話,就會(huì)直接報(bào)錯(cuò)的,今天就給大家說(shuō)下字符串和數(shù)字拼接的問(wèn)題,有需要的朋友們可以參考借鑒。2016-10-10踩坑:pytorch中eval模式下結(jié)果遠(yuǎn)差于train模式介紹
這篇文章主要介紹了踩坑:pytorch中eval模式下結(jié)果遠(yuǎn)差于train模式介紹,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06python腳本執(zhí)行CMD命令并返回結(jié)果的例子
今天小編就為大家分享一篇python腳本執(zhí)行CMD命令并返回結(jié)果的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08CentOS 7下Python 2.7升級(jí)至Python3.6.1的實(shí)戰(zhàn)教程
Centos是目前最為流行的Linux服務(wù)器系統(tǒng),其默認(rèn)的Python 2.x,這篇文章主要給大家分享了關(guān)于在CentOS 7下Python 2.7升級(jí)至Python3.6.1的實(shí)戰(zhàn)教程,文中將升級(jí)的步驟一步步的介紹的非常詳細(xì),對(duì)大家的理解和學(xué)習(xí)具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-07-07