Python中将函数作为另一个函数的参数传入并调用

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

    原文作者:zzZ摇篮曲
    原文地址: https://segmentfault.com/a/1190000015714892
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞