048 函数对象

函数名等同于变量名,即变量名有的方法,函数名同样也有, 被引用 ; 当做容器元素 ; 当做函数参数 ; 当做函数返回值

一、函数对象的四大功能

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

原文地址:https://www.cnblogs.com/XuChengNotes/p/11329283.html