Python函数作为参数传递给函数

Python中一切皆对象(object).–Dive Into Python

既然一切皆对象,那么一切都可以作为参数传递!

1、定义两个简单的函数

  • 函数1–add_params(a,b):

    a,b两个数字
    返回:a+b

  • 函数2–mult_params(func,a,b,c):
    a,b,c 为数字,func是函数
    返回:func(a,b)*c

def add_params(a,b):
  return a+b

def mult_params(func,a,b,c):
  return func(a,b)*c

2、调用测试

a,b,c = 1,2,3

# add_params(a,b)= 1 + 2 = 3
r1 = add_params(a,b)

# mult_params(func,a,b,c) = (1+2)*3 = 3*3 = 9
r2= mult_params(add_params,a,b,c)

print(r1)
print(r2)
3
9

3、再简化一点

被调用的函数可能参数较多,如果老是在定义新函数时写原变量名就比较麻烦,因此偷点懒。使用kwargs传参。

def mult_dict(func,c,**params):
  return func(**params)*c
r3 = mult_dict(add_params,c,b=2,a=1)
print(r3)
9

结果正确。

4、小结

Everything is object in Python。

灵活运用有奇效!

你可能感兴趣的:(技术杂谈,python,传参,函数编程)