函数名等同于变量名,即变量名有的方法,函数名同样也有, 被引用 ; 当做容器元素 ; 当做函数参数 ; 当做函数返回值
一、函数对象的四大功能
1. 引用
变量名可以被引用,函数名也可以被引用
def func():
print("I'm func")
# func可以加()调用,那么f也可以加()调用
f = func
print(f, func)
f() # func()
<function func at 0x000002B8971DC1E0> <function func at 0x000002B8971DC1E0>
2. 当作参数传给一个函数
def func():
print("I'm func")
# 变量名还可以当做参数
def f2(name): # name = func
name() # 调用func函数
f2(func) # 传入func函数地址
I'm func
3. 可以当作函数的返回值
# 函数的返回值
def f3(name): # name = func
return name
res = f3(func)
print(res) # 打印内存func内存地址
res() # 调用func函数
<function func at 0x000001DBC6ABC1E0>
I'm func
4. 可以当作容器类型的元素
# 变量名可以放入容器类数据类型
lt = [1, 2, func]
lt[-1]()
I'm func