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)