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)