1.Python中使用函数作为参数传递。
所有定义的函数其实它的名字都是指向这个函数本身的一个变量。也就是说如果
一个函数def mySum(s,y),使用mySum(1,2)是调用这个函数,而mySum本身就一个变量,和其他任何变量一样,可以赋值、传递等操作的。
例子:
def mySum(x, y):
return (x + y)
anotherFuc = mySum
print(anotherFuc(1,2))
print(mySum(1,2))
print(mySum is anotherFuc)
pritn(mySum == anotherFuc)
----------------------------
输出:
3
3
True
True
当然也可以将其他的变量赋给一个函数名,但是这样通常没有意义,因为赋值后原来指向函数的变量(也就是函数名)有了新的意义,也就无法再作为函数名来调用了:
mySum = 10
print(mySum)
result = mySum(1,2)
------
10
Traceback (most recent call last):
result = mySum(1,2)
TypeError: 'int' object is not callable
————————————————
版权声明:本文为优快云博主「超级超级小天才」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/qq_38962621/article/details/108091572
2.函数作为参数传递
函数变量和其他变量一样可以作为参数传入另一个函数,因为传递的是参数,所以传递时不要跟上后边的括号以及可能存在的参数,只要传递函数名即是传递了函数变量
def fr5():
return 5
def fr4():
return 4
def printfr(f1, f2):
print(f1())
print(f2())
printfr(fr4,fr5)
------
4
5
3.函数变量作为返回值
函数可以作为变量像其他变量一样使用return返回,比如我们定义一个函数f,
在它里边定义一个函数g,然后可以返回g这个函数:
def f(*args):
def g():
sum = 0
for i in args:
sum+=i
return sum
return g
g1 = f(1,2,3,4,5)
g2 = f(6,7,8,9,10)
print(g1 == g2)
print(g1 is g2)
print(g1())
print(g2())
------
False
False
15
40