Python中一切皆对象(object).–Dive Into Python
既然一切皆对象,那么一切都可以作为参数传递!
函数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
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
被调用的函数可能参数较多,如果老是在定义新函数时写原变量名就比较麻烦,因此偷点懒。使用kwargs
传参。
def mult_dict(func,c,**params):
return func(**params)*c
r3 = mult_dict(add_params,c,b=2,a=1)
print(r3)
9
结果正确。
Everything is object in Python。
灵活运用有奇效!