函数对象 函数对象 函数对象的应用场景

# 在python中,所有变量存放的值只要是地址,我们就称之为对象
#  -- 所有的变量都是用来存放地址的,所以都是对象
#  -- 存放整型的地址就是整型对象 | 存放函数的地址就是函数对象 | 存放文件的地址就是文件对象

# 函数对象:存放函数地址的变量就是函数对象
def fn(): pass
my_fn = fn
# my_fn | fn都存着函数地址,所以都是函数对象,函数对象的使用就是 函数对象() 来调用函数

函数对象的应用场景

# 函数对象的应用场景
# 1.函数对象()就是调用函数
# 2.函数对象可以直接作为变量赋值给其他变量
# 3.函数对象可以作为函数的参数
# 4.函数对象可以作为函数的返回值
# 5.函数对象可以作为容器类型的成员

# 1.函数对象()就是调用函数
def fn1():
    pass
fn1()

# 2.函数对象可以直接作为变量赋值给其他变量
def fn2():
    pass
my_fn = fn2
print('>>>', my_fn, fn2)
my_fn()

# 3.函数对象可以作为函数的参数
def fn3(func):  # func = my_fn = fn2
    func()
fn3(my_fn)

# 4.函数对象可以作为函数的返回值
def fn4():
    return my_fn
my_fn2 = fn4()

# 5.函数对象可以作为容器类型的成员
ls = [my_fn, my_fn2]