Python中的Function定義方法
更新時(shí)間:2009年09月25日 14:57:30 作者:
Python中,函數(shù)是可被重用的程序段。對(duì)于函數(shù)的定義,可以使用def關(guān)鍵字。
對(duì)于變量z,它就是nonlocal級(jí)別的。如果在inner中需要使用z,則需要使用nonlocal關(guān)鍵字進(jìn)行聲明。
講完了變量的作用范圍,就該講講函數(shù)的參數(shù)問題了。 Python中的函數(shù)可以0-n個(gè)參數(shù),這和其他編程語言一樣沒有什么特別之處。同樣的,可以為函數(shù)參數(shù)指定默認(rèn)值。例如:
復(fù)制代碼 代碼如下:
def power(num,power = 1):
print(num ** power)
power(2)
power(2,2)
#*************
#運(yùn)行結(jié)果
2
4
對(duì)于第一次調(diào)用power(2),并沒有指定第二個(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ù)列表的最后。也就是說,在參數(shù)列表中,如果出現(xiàn)了給定默認(rèn)值的參數(shù)后,就不能在出現(xiàn)沒有給定默認(rèn)值的參數(shù)。
對(duì)于參數(shù)賦值,可以使用關(guān)鍵字的方式賦值。例如:
復(fù)制代碼 代碼如下:
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
可以通過指定參數(shù)名稱來對(duì)參數(shù)進(jìn)行賦值。
Python支持可變參數(shù)列表,首先看下面的程序:
復(fù)制代碼 代碼如下:
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ù)。接下來就是可變參數(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)绾蝸硖幚鞵ython3。如果沒有被我煩到,就讀一讀吧2014-11-11Python3.6 + TensorFlow 安裝配置圖文教程(Windows 64 bit)
這篇文章主要介紹了Python3.6 + TensorFlow 安裝配置的教程(Windows 64 bit),本文通過圖文并茂的形式給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-02-02解決Python中字符串和數(shù)字拼接報(bào)錯(cuò)的方法
相信很多的新手朋友都會(huì)碰到python連接字符串和數(shù)字的問題,因?yàn)閜ython是強(qiáng)類型的語言,如果你把一個(gè)字符串和數(shù)字直接做連接的操作的話,就會(huì)直接報(bào)錯(cuò)的,今天就給大家說下字符串和數(shù)字拼接的問題,有需要的朋友們可以參考借鑒。2016-10-10踩坑:pytorch中eval模式下結(jié)果遠(yuǎn)差于train模式介紹
這篇文章主要介紹了踩坑:pytorch中eval模式下結(jié)果遠(yuǎn)差于train模式介紹,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-06-06python腳本執(zhí)行CMD命令并返回結(jié)果的例子
今天小編就為大家分享一篇python腳本執(zhí)行CMD命令并返回結(jié)果的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧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à)值,需要的朋友們下面來一起看看吧。2017-07-07