函数对象对象可以像变量一样进行赋值
还可以作为列表的元素进行使用
可以作为返回值返回
可以作为参数进行传递
# def fn():
# print("我叫fn") # fn()
# print(fn) # <function fn at 0x0000000001D12E18>
# fn()
# gn = fn # 函数名可以进行赋值
# print(gn)
# gn() # fn = 666
# print(fn) # 666 # def func1():
# print("朱祁镇")
#
# def func2():
# print("徐阶")
#
# def func3():
# print("王阳明")
#
# def func4():
# print("魏忠贤")
#
# lst = [func1, func2, func3, func4] # 函数+() 就是调用.
# print(lst)
#
# # lst[0]()
# # for el in lst: # el是列表中的每一项.
# # el() # 拿到函数. 执行函数
#
#
# a = 10
# b = 20
# c = 30
# lst = [a, b, c]
# print(lst) # def wrapper():
# def inner():
# print("我的天, 还可以扎样写")
# print(inner) # <function wrapper.<locals>.inner at 0x00000000028989D8>
# inner()
# return inner
#
# ret = wrapper() # <function wrapper.<locals>.inner at 0x00000000028989D8>
# print(ret)
# ret() # def wrapper():
# def inner():
# print("哈哈哈")
# return inner # 函数名可以像返回值一样返回
#
# ret = wrapper()
# ret() # 在函数外面访问了函数内部的函数
# ret()
# ret() #
# def func1():
# a = 10
# return a
# print(func1()) # 函数可以作为参数进行传递 def func1():
print("谢晋") def func2():
print('杨士奇') def func3():
print('徐渭') def func4():
print("柳如是") # 代理. 装饰器的雏形
def proxy(a): # a就是变量. 形参
print("我是代理")
a()
print("代理执行完毕") proxy(func1)
proxy(func3)
proxy(func4)