1、概览
我们知道Python内置的求绝对值的函数是abs()
# 调用abs()函数可以获得一个值
>>> abs(-10)
10
# 那么,只写abs本身呢
>>> abs
<built-in function abs>
可见,abs(-10)是函数调用,而abs是函数本身
1.1、将函数赋给变量
将函数赋给变量只有两种情况:
把函数计算得到的 结果 赋给变量
f=abs(-10)
把 函数本身 赋给变量,变量此时可以调用函数,即变量可以指向函数
f=abs
1.2、函数名也是变量
函数名其实就是指向函数的变量。
对于abs()这个函数,可以把函数名abs看成变量。这意味着,可以用其他的值赋给abs这个变量
abs = 10
赋值过后。再调用abs函数报错
注:由于abs函数实际上是定义在import builtins模块中的,所以要让修改abs变量的指向在其它模块也生效,要用import builtins; builtins.abs = 10
2、例题
一个简单的高阶函数,计算abs(x)+abs(y)
# -*- coding: utf-8 -*-
def add(x, y, f):
return f(x) + f(y)
print(add(-5, 6, abs)) # 将abs 函数 作为参数 传给了 add函数
原文地址:http://blog.51cto.com/12758568/2115993