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在动手,参考是关键,动手更关键!!!