python中以函數(shù)作為參數(shù)(回調函數(shù))的實現(xiàn)方法
python以函數(shù)作為參數(shù)(回調函數(shù))
純粹是自己學習總結之用?;卣{函數(shù)搭配了元組和字典。在注釋中已經標明有些需要注意的細節(jié)。
#以函數(shù)作為參數(shù) def func_callback(func1,args): print("調用函數(shù):") func1(args) print("____________________") def f1(x): print("回調函數(shù)啟動:",x) func_callback(f1,100) def func_callback_tuple(func2,*args): print("回調函數(shù)和元組相結合:") func2(args)#這里的“*”號可以有,也可以省略。 print("____________________") def f2(*x): print("帶tuple參數(shù)回調函數(shù)啟動:") print(type(x),x) func_callback_tuple(f2,99,98,97,96) def func_callback_dic(func,**kwargs): print("回調函數(shù)和字典相結合:") func(**kwargs)#兩個星號要加上,不能省略 print("____________________") def f3(**x): print("帶tuple參數(shù)回調函數(shù)啟動:") print(type(x),x) func_callback_dic(f3,aa=1,bb=2,cc=3)
輸出為:
python函數(shù)的參數(shù)類型
在調用函數(shù)時,信息可以作為參數(shù)傳遞給函數(shù),參數(shù)在函數(shù)名后的括號內指定。python有以下四種參數(shù)傳遞類型:
- 必需參數(shù)
- 關鍵字參數(shù)
- 默認參數(shù)
- 不定長參數(shù)
一、必須參數(shù)
必需參數(shù)須以正確的順序傳入函數(shù),調用時的數(shù)量必須和聲明時的一樣。
def printme( str ): ? ? ? ?print (str) ? ?return printme("Hello World!")
上述程序在調用printme()函數(shù)時必須傳入一個字符串參數(shù),負責程序在運行時會報錯。
二、關鍵字參數(shù)
關鍵字參數(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")
三、默認參數(shù)
默認參數(shù)是在函數(shù)聲明時就給形參賦值,在調用函數(shù)時如果沒有給參數(shù)傳遞值那么就默認使用聲明時所賦的值。
def my_function(name,country = "China"): ? print(name + "is from" + country) my_function("張三") my_function("張三","中國")
四、不定長參數(shù)
有時候可能需要一個函數(shù)能處理比當初聲明時更多的參數(shù),這些參數(shù)叫做不定長參數(shù),基本語法如下:
加了星號 * 的參數(shù)會以元組(tuple)的形式導入,存放所有未命名的變量參數(shù)。
def printinfo( arg1, *vartuple ): ? ?"打印任何傳入的參數(shù)" ? ?print ("輸出: ") ? ?print (arg1) ? ?print (vartuple) ? # 調用printinfo 函數(shù) printinfo( 70, 60, 50 )
加了兩個星號 ** 的參數(shù)會以字典的形式導入。
def printinfo( arg1, **vardict ): ? ?"打印任何傳入的參數(shù)" ? ?print ("輸出: ") ? ?print (arg1) ? ?print (vardict) ? # 調用printinfo 函數(shù) printinfo(1, a=2,b=3)
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
基于spring boot 日志(logback)報錯的解決方式
今天小編就為大家分享一篇基于spring boot 日志(logback)報錯的解決方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02一文弄懂Pytorch的DataLoader, DataSet, Sampler之間的關系
這篇文章主要介紹了一文弄懂Pytorch的DataLoader, DataSet, Sampler之間的關系,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-07-07