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在動手,參考是關鍵,動手更關鍵!!!