真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

在Python中如何將函數(shù)作為另一個(gè)函數(shù)的參數(shù)傳入并調(diào)用-創(chuàng)新互聯(lián)

這篇文章主要介紹了在Python中如何將函數(shù)作為另一個(gè)函數(shù)的參數(shù)傳入并調(diào)用,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

在曾都等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站設(shè)計(jì)制作、成都做網(wǎng)站 網(wǎng)站設(shè)計(jì)制作按需網(wǎng)站開發(fā),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計(jì),成都營銷網(wǎng)站建設(shè),成都外貿(mào)網(wǎng)站建設(shè),曾都網(wǎng)站建設(shè)費(fèi)用合理。

在Python中,函數(shù)本身也是對象,所以可以將函數(shù)作為參數(shù)傳入另一函數(shù)并進(jìn)行調(diào)用

在舊版本中,可以使用apply(function, *args, **kwargs)進(jìn)行調(diào)用,但是在新版本中已經(jīng)移除,以function(*args, **kwargs)進(jìn)行替代,所以也不應(yīng)該再使用apply方法

示例代碼:

def func_a(func, *args, **kwargs):
  print(func(*args, **kwargs))

def func_b(*args):
  return args

if __name__ == '__main__':
  func_a(func_b, 1, 2, 3)

在代碼中,將函數(shù)func_b作為函數(shù)func_a的參數(shù)傳入,將函數(shù)func_b的參數(shù)以元組args傳入,并在調(diào)用func_b時(shí),作為func_b的參數(shù)。

運(yùn)行結(jié)果:

(1, 2, 3)

但是這里存在一個(gè)問題,但func_a和func_b需要同名的參數(shù)時(shí),就會(huì)出現(xiàn)異常,如:

def func_a(arg_a, func, **kwargs):
  print(arg_a)
  print(func(**kwargs))

def func_b(arg_a):
  print(arg_a)

if __name__ == '__main__':
  func_a(arg_a='Hello Python', func=func_b)

異常信息:

TypeError: func_b() missing 1 required positional argument: 'arg_a'

雖然通過修改,手動(dòng)將arg_a作為參數(shù)傳入func中進(jìn)行調(diào)用,可以正常運(yùn)行,但這明顯不符合設(shè)計(jì)初衷:在func_a中執(zhí)行func(**kwargs)時(shí),很可能并不知道func到底需要什么參數(shù)。換句話說,如果已經(jīng)提前知道需要調(diào)用什么函數(shù),那完全不必要把函數(shù)作為參數(shù)傳入另一個(gè)函數(shù)并調(diào)用,直接調(diào)用函數(shù)即可。

def func_a(arg_a, func, **kwargs):
  print(arg_a)
  func(arg_a=arg_a, **kwargs)

def func_b(arg_a):
  print(arg_a)

if __name__ == '__main__':
  func_a(arg_a='Hello Python', func=func_b)

當(dāng)加入第三個(gè)函數(shù),func_c,它不需要arg_a這個(gè)參數(shù)時(shí),就會(huì)出現(xiàn)問題。

def func_a(arg_a, func, **kwargs):
  print(arg_a)
  func(arg_a=arg_a, **kwargs)

def func_b(arg_a):
  print(arg_a)

def func_c():
  print('Hello World')

if __name__ == '__main__':
  func_a(arg_a='Hello Python', func=func_b)
  func_a(arg_a='Hello Python', func=func_c)

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“在Python中如何將函數(shù)作為另一個(gè)函數(shù)的參數(shù)傳入并調(diào)用”這篇文章對大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!


當(dāng)前標(biāo)題:在Python中如何將函數(shù)作為另一個(gè)函數(shù)的參數(shù)傳入并調(diào)用-創(chuàng)新互聯(lián)
分享地址:http://weahome.cn/article/dhopgs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部