閉包函數,裝飾器
阿新 • • 發佈:2019-04-02
更改 變調 out 裝飾器 loaded ring args pro 主頁
def outer(f):
def inner():
f()
print("新增功能1")
return inner
def wrap(f):
def inner():
f()
print("新增功能2")
return inner
?
def check_usr(fn): # fn, login, inner:不同狀態下的login,所以參數是統一的
def inner(usr, pwd):
# 在原功能上添加新功能
if not (len(usr) >= 3 and usr.isalpha()):
print(‘賬號驗證失敗‘)
return False
# 原有功能
result = fn(usr, pwd)
# 在原功能下添加新功能
# ...
return result
return inner
?
?
# 了解
def outer(input_color):
def wrap(fn):
if input_color == ‘red‘:
info = ‘\033[36;41mnew action\33[0m‘
else:
info = ‘yellow:new action‘
?
def inner(*args, **kwargs):
pass
result = fn(*args, **kwargs)
print(info)
return result
return inner
return wrap # outer(color) => wrap
?
?
color = input(‘color: ‘)
閉包函數,裝飾器