Python中將函式作為另一個函式的引數傳入並呼叫

zzZ搖籃曲發表於2019-02-16

Python中將函式作為另一個函式的引數傳入並呼叫

將函式作為另外一個函式的引數呼叫?聽起來很複雜,其實動起手來很簡單。下面跟我一起看看一些簡單的例子,我儘量簡單易懂:

下面這段程式碼涵蓋了函式呼叫的函式的傳參和不傳參的兩個方面:

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


def func_b(arg_a):
    print(arg_a)


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


if __name__ == `__main__`:
    func_a(func_a_arg_a=`temp`, arg_a=`Hello Python`, func=func_b)
    func_a(func_a_arg_a=`temp`, func=func_c)

輸出結果:
temp
Hello Python
temp
Hello World
[Finished in 0.2s]

**注意:對於func_a,主函式,傳參隨意了,需要什麼穿什麼,但是對於func_b and func_c就不盡然了;

  • func_c作為不需要傳參的函式,如果在func_a中有引數傳入了會怎麼樣呢?

——當時然報錯啊,可以自動動手嘗試下,畢竟敲程式碼的人動手才是正途:


TypeError: func_c() got an unexpected keyword argument TypeE `arg_a`
  • 對於fun_b:需要傳參的函式:

要注意的是:不傳參報錯:
TypeError: func_b() missing 1 required positional argument: `arg_a`

不懂就百度,多參考一些blog在動手,參考是關鍵,動手更關鍵!!!

相關文章