函數名的本質和閉包
函數名的本質:
函數可以作為容器中一項
函數名可以賦值
可以作為參數
可以做返回值
返回值的本質:是返回的值,而不是某個變量
def func():
a=1
return a
b=func()
print(b)
func#函數的內存地址
函數名加括號==調用
函數地址加括號==調用
函數名可以賦值
def f():
print(123)
f()
a=b=f
f()
a()
b=()
容器類型:列表 元祖 字典 集合
函數可以作為容器類型中的一項,可以做字典的keys
def f1():
print(‘哇哈哈‘)
def f2():
print(‘qq星‘)
函數名可以作為函數的參數
def login():
print(‘歡迎登陸‘)
def index(auth):
auth()
print(‘歡迎來到首頁‘)
index(login)
函數名可以作為函數的返回值
def login_failed():
print(‘登錄失敗‘)
def index():
print(‘歡迎來到首頁‘)
def login(usr,pwd):
if usr == ‘alex‘ and pwd ==‘sb‘
return index
else:
return login_failed
res_func = login(‘alex‘,‘ssb‘)
res_func()
def f():
pass
f是函數名
f()是函數調用
f()得到的結果是返回值
閉包
內部函數使用了外部函數的變量,內部函數就是一個閉包
def outer(*args):
num=0
for i in args:
num+=i
def inner()
return num
return inner
inner=outer(1,2,3,4,5)
inner()s
inner就是一個閉包函數
閉包的應用
緩存
裝飾器
函數名的本質和閉包