python中以函數(shù)作為參數(shù)(回調(diào)函數(shù))的實(shí)現(xiàn)方法
python以函數(shù)作為參數(shù)(回調(diào)函數(shù))
純粹是自己學(xué)習(xí)總結(jié)之用?;卣{(diào)函數(shù)搭配了元組和字典。在注釋中已經(jīng)標(biāo)明有些需要注意的細(xì)節(jié)。
#以函數(shù)作為參數(shù) def func_callback(func1,args): print("調(diào)用函數(shù):") func1(args) print("____________________") def f1(x): print("回調(diào)函數(shù)啟動(dòng):",x) func_callback(f1,100) def func_callback_tuple(func2,*args): print("回調(diào)函數(shù)和元組相結(jié)合:") func2(args)#這里的“*”號(hào)可以有,也可以省略。 print("____________________") def f2(*x): print("帶tuple參數(shù)回調(diào)函數(shù)啟動(dòng):") print(type(x),x) func_callback_tuple(f2,99,98,97,96) def func_callback_dic(func,**kwargs): print("回調(diào)函數(shù)和字典相結(jié)合:") func(**kwargs)#兩個(gè)星號(hào)要加上,不能省略 print("____________________") def f3(**x): print("帶tuple參數(shù)回調(diào)函數(shù)啟動(dòng):") print(type(x),x) func_callback_dic(f3,aa=1,bb=2,cc=3)
輸出為:
python函數(shù)的參數(shù)類型
在調(diào)用函數(shù)時(shí),信息可以作為參數(shù)傳遞給函數(shù),參數(shù)在函數(shù)名后的括號(hào)內(nèi)指定。python有以下四種參數(shù)傳遞類型:
- 必需參數(shù)
- 關(guān)鍵字參數(shù)
- 默認(rèn)參數(shù)
- 不定長參數(shù)
一、必須參數(shù)
必需參數(shù)須以正確的順序傳入函數(shù),調(diào)用時(shí)的數(shù)量必須和聲明時(shí)的一樣。
def printme( str ): ? ? ? ?print (str) ? ?return printme("Hello World!")
上述程序在調(diào)用printme()函數(shù)時(shí)必須傳入一個(gè)字符串參數(shù),負(fù)責(zé)程序在運(yùn)行時(shí)會(huì)報(bào)錯(cuò)。
二、關(guān)鍵字參數(shù)
關(guān)鍵字參數(shù)在調(diào)用時(shí)通過關(guān)鍵字來確定傳入的參數(shù),并不需要一定保證參數(shù)的順序和聲明函數(shù)時(shí)的參數(shù)順序一致。
def my_function(child3, child2, child1): ? print("The youngest child is " + child3) ? my_function(child1 = "Phoebe", child2 = "Jennifer", child3 = "Rory")
三、默認(rèn)參數(shù)
默認(rèn)參數(shù)是在函數(shù)聲明時(shí)就給形參賦值,在調(diào)用函數(shù)時(shí)如果沒有給參數(shù)傳遞值那么就默認(rèn)使用聲明時(shí)所賦的值。
def my_function(name,country = "China"): ? print(name + "is from" + country) my_function("張三") my_function("張三","中國")
四、不定長參數(shù)
有時(shí)候可能需要一個(gè)函數(shù)能處理比當(dāng)初聲明時(shí)更多的參數(shù),這些參數(shù)叫做不定長參數(shù),基本語法如下:
加了星號(hào) * 的參數(shù)會(huì)以元組(tuple)的形式導(dǎo)入,存放所有未命名的變量參數(shù)。
def printinfo( arg1, *vartuple ): ? ?"打印任何傳入的參數(shù)" ? ?print ("輸出: ") ? ?print (arg1) ? ?print (vartuple) ? # 調(diào)用printinfo 函數(shù) printinfo( 70, 60, 50 )
加了兩個(gè)星號(hào) ** 的參數(shù)會(huì)以字典的形式導(dǎo)入。
def printinfo( arg1, **vardict ): ? ?"打印任何傳入的參數(shù)" ? ?print ("輸出: ") ? ?print (arg1) ? ?print (vardict) ? # 調(diào)用printinfo 函數(shù) printinfo(1, a=2,b=3)
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
基于spring boot 日志(logback)報(bào)錯(cuò)的解決方式
今天小編就為大家分享一篇基于spring boot 日志(logback)報(bào)錯(cuò)的解決方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02關(guān)于你不想知道的所有Python3 unicode特性
我的讀者知道我是一個(gè)喜歡痛罵Python3 unicode的人。這次也不例外。我將會(huì)告訴你用unicode有多痛苦和為什么我不能閉嘴。我花了兩周時(shí)間研究Python3,我需要發(fā)泄我的失望。在這些責(zé)罵中,仍然有有用的信息,因?yàn)樗涛覀內(nèi)绾蝸硖幚鞵ython3。如果沒有被我煩到,就讀一讀吧2014-11-11教你如何使用Python開發(fā)一個(gè)釘釘群應(yīng)答機(jī)器人
在聊天工具大肆侵入我們生活各個(gè)方面的今天,各種消息無時(shí)無刻不在侵?jǐn)_我們的每一寸時(shí)間,這種情況下,一個(gè)聊天的機(jī)器人就很有必要了.今天,我們來學(xué)習(xí)一下使用 Python 開發(fā)一個(gè)釘釘?shù)膽?yīng)答機(jī)器人,助你「人生苦短,少回消息」,需要的朋友可以參考下2021-06-06keras實(shí)現(xiàn)VGG16方式(預(yù)測一張圖片)
這篇文章主要介紹了keras實(shí)現(xiàn)VGG16方式(預(yù)測一張圖片),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07一文弄懂Pytorch的DataLoader, DataSet, Sampler之間的關(guān)系
這篇文章主要介紹了一文弄懂Pytorch的DataLoader, DataSet, Sampler之間的關(guān)系,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07Python獲取當(dāng)前目錄下所有文件的6種方法總結(jié)
這篇文章主要給大家介紹了關(guān)于Python獲取當(dāng)前目錄下所有文件的6種方法,要獲取當(dāng)前目錄下的所有目錄,可以使用Python內(nèi)置的os模塊中的listdir()函數(shù)和isdir()函數(shù),需要的朋友可以參考下2023-08-08Python基于遞歸算法實(shí)現(xiàn)的走迷宮問題
這篇文章主要介紹了Python基于遞歸算法實(shí)現(xiàn)的走迷宮問題,結(jié)合迷宮問題簡單分析了Python遞歸算法的定義與使用技巧,需要的朋友可以參考下2017-08-08