030-創(chuàng)建和調(diào)用函數(shù)

創(chuàng)建函數(shù)

def [函數(shù)名](函數(shù)參數(shù))
'''
函數(shù)文檔
'''
return 返回值

如果用戶想要讀取函數(shù)文檔,那么只需要輸入:

函數(shù)名__(雙下劃線)doc__(雙下劃線)

即可。例:

>>> def test(name):    #name 就是一個形參
    '''這是一個函數(shù)文檔'''
    return 'Kiss%s' % (name)

>>> test('Thomas')#Thomas就是一個實參
'KissThomas'
>>> test.__doc__
'這是一個函數(shù)文檔'

>>> help(test)
Help on function test in module __main__:

test(name)
    這是一個函數(shù)文檔

如以上代碼塊所示,“函數(shù)名.__doc__”可以顯示函數(shù)文檔。而help(函數(shù)名)也可以顯示函數(shù)的內(nèi)容,以及文檔。

不管是否涉及到跟他人協(xié)作,給函數(shù)添加正確的文檔是一個好習慣。

位置參數(shù)和關(guān)鍵字參數(shù)

位置參數(shù)就是定義函數(shù)的時候,直接把形參的名字放在那里的,就叫位置參數(shù)。
而關(guān)鍵字參數(shù)是指在定義函數(shù)的時候,用一個變量去指定具體的形參的情形。

例如,上一個例子中,test(name)就是一個位置參數(shù),而如果改成test(a='name'),那么name就變成了一個關(guān)鍵字參數(shù),關(guān)鍵字是a。

默認參數(shù)

默認參數(shù)就是當用戶沒有給它賦值的情況下,它就會返回默認值的一個參數(shù)。

# 在沒有默認參數(shù)的情況下,用戶使用函數(shù)時,少輸入了一個參數(shù),導(dǎo)致函數(shù)報錯
>>> def hanshu(name,behavior,noun):
    return '%s%s了%s' % (name,behavior,noun)

>>> hanshu('張三','吃')

#Traceback (most recent call last):
  #File "<pyshell#141>", line 1, in <module>
    #hanshu('張三','吃')
#TypeError: hanshu() missing 1 required positional argument: 'noun'

>>> hanshu('張三','吃','蛋糕')
'張三吃了蛋糕'
>>> 

#而當定義了默認參數(shù),用戶未輸入默認參數(shù)時,就會自動將默認參數(shù)補全,函數(shù)正常運行。

>>> def hanshu(name,behavior,noun='蛋糕'):
    return '%s%s了%s' % (name,behavior,noun)

>>> hanshu('張三','玩弄')
'張三玩弄了蛋糕'
>>> 

注意:如果存在默認參數(shù)和位置參數(shù),那么位置參數(shù)必須在默認參數(shù)的前面出現(xiàn)。否則會報錯??!

收集參數(shù)(可變參數(shù))

在這里“收集”不是一個動詞。當定義函數(shù)的人也不知道用戶到底可能要輸入多少個參數(shù)時,就需要用到收集參數(shù)。

收集參數(shù)用*+普通參數(shù)名 的方式來表示。

>>> def test(*params):
    print('一共有%d個參數(shù)' % len(params))
    print('第2個參數(shù)的值是:%s' % params[1])

    
>>> test('金','木','水','火','土')
一共有5個參數(shù)
第2個參數(shù)的值是:木
>>> 

注意:如果可變參數(shù)后面還有其他的參數(shù),那么后面的參數(shù)只能使用關(guān)鍵字參數(shù),不能使用位置參數(shù)。因為如果使用了位置參數(shù),會被python當成前面一個可變參數(shù)的一部分。

*在形參中的作用是打包,而在實參的作用中則是解包。

>>> str = '上海自來水來自海上'
>>> print(str)
上海自來水來自海上
>>> print(*str)
上 海 自 來 水 來 自 海 上
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容