1. 函数名作为参数‘
def add(): a = 1 b = 2 total = a +b print("{}+{}={}".format(a,b,total)) return total def show(add): print("call {}".format(add.__name__)) return add my_add = show(add) print(my_add) # 加括号为调用 my_add()
def add(x, y, f): return f(x) + f(y) my_sum = add(1, -2, abs) print(my_sum)
2.函数名为返回值
def show(): def add(): a = 1 b = 2 total = a + b print("{}+{}={}".format(a, b, total)) return total print("call {}".format(add.__name__)) return add # 其实没有调用内部函数的值 my_add = show() # 加括号为调用 my_add()
3.匿名函数
# lambda后面只跟多个参数,但是只有一个表达式 f = lambda x: x * x a = map(f, [1, 2, 3]) print(list(a)) a = map(lambda x: x * 2, [1, 2, 3]) print(list(a)) a = filter(lambda x: x % 2 == 1, [1, 2, 3]) print(list(a))