这篇文章将为大家详细讲解有关python如何使用函数作为函数形参,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
使用函数作为函数形参
有时候需要定义一个函数,该函数的大部分计算逻辑都能确定,但某些处理逻辑暂时无法确定,这意昧着某些程序代码需要动态改变,如果希望调用函数时能动态传入这些代码,那么就需要在函数中定义函数形参,这样即可在调用该函数时传入不同的函数作为参数,从而动态改变这段代码。
Python 支持像使用其他参数一样使用函数参数,例如如下程序:
# 定义函数类型的形参,其中fn是一个函数def map(data, fn) : result = [] # 遍历data列表中每个元素,并用fn函数对每个元素进行计算 # 然后将计算结果作为新数组的元素 for e in data : result.append(fn(e)) return result# 定义一个计算平方的函数def square(n) : return n * n# 定义一个计算立方的函数def cube(n) : return n * n * n# 定义一个计算阶乘的函数def factorial(n) : result = 1 for index in range(2, n + 1) : result *= index return resultdata = [3 , 4 , 9 , 5, 8]print("原数据: ", data)# 下面程序代码3次调用map()函数,每次调用时传入不同的函数print("计算数组元素的平方")print(map(data , square))print("计算数组元素的立方")print(map(data , cube))print("计算数组元素的阶乘")print(map(data , factorial))
上面程序中定义了一个 map() 函数,该函数的第二个参数是一个函数类型的参数,这意味着每次调用函数时可以动态传入一个函数,随着实际传入函数的改变,就可以动态改变 map() 函数中的部分计算代码。
接下来的三行粗体字代码调用了 map() 函数三次,三次调用依次传入了 square、cube、factorial 函数作为参数,这样每次调用 map() 函数时实际的执行代码是有区别的。
编译、运行上面程序,可以看到如下输出结果:
原数据: [3, 4, 9, 5, 8]计算数组元素的平方[9, 16, 81, 25, 64]计算数组元素的立方[27, 64, 729, 125, 512]计算数组元素的阶乘[6, 24, 362880, 120, 40320]
关于“python如何使用函数作为函数形参”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。