函式名的本質和閉包
函式名的本質:
函式可以作為容器中一項
函式名可以賦值
可以作為引數
可以做返回值
返回值的本質:是返回的值,而不是某個變數
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就是一個閉包函式
閉包的應用
快取
裝飾器