需要先看:
python第一类对象的特性
python函数的本质是对象
将函数作为参数传给另一个函数
通过 python函数的本质是对象 ,了解到 函数 可以赋值给 变量 ,那么也可以赋值给另一个函数的 形参
def test():
print("test()函数")
def call_test(fun):
print('形参是函数:',fun)
fun()
调用
call_test(test)
给形参函数传值
def add(i,j):
return i+j
def call_add(fun,i,j):
return fun(i,j)
调用执行:
print(call_add(add,1,2))
返回函数
对此功能可能会不理解,没关系,应用场景 在后面章节介绍,本节先学会使用
def create_add():
def fun(i,j):
return i+j
'''
注意返回的是fun,后面没有小括号
有小括号表示调用函数
'''
return fun
说明:
在函数create_add()内定义了 内部函数fun() ,并 返回函数对象fun
注意:
返回的是 fun函数对象,后面 不能有小括号 ,有小括号 表示 调用函数
测试调用:
#调用create_add()时,返回的并不是求和结果,而是求和函数
add=create_add()
#打印函数的内存地址
print(add)
print(id(add))
#后面加小括号表示调用
print(add(1,1))
另一种调用方式:
print(create_add()(1,1))
print(create_add()(2,2))
每次都返回新函数
add=create_add()
add2=create_add()
print(id(add))
print(id(add2))
每次返回函数的内存地址都不相同
扩展知识:
https://www.cnblogs.com/ghgyj/p/3997548.html
https://www.cnblogs.com/shhnwangjian/p/6533317.html