装饰器

装饰器:

封闭:已实现的功能代码不应该被修改

开放:对现有功能的扩展开放

装饰器的函数
def outer(func):
def inner():
func()
return inner
@outer
def f1():
print('ok')

f1()

依据如上,我们可以总结出,它执⾏的顺序具体为:
先执⾏outer的函数
再执⾏内部函数inner
下来执⾏到inner函数的返回值
再具体到inner的函数,执⾏inner函数⾥⾯的表达式


案例
dict1={'islogin':False}

def outer(func):
def inner():
if dict1['islogin'] == True:
func()
else:
return print('请登陆')
return inner

def login(username='liu lele',password='123'):
if username=='liu lele' and password=='123':
dict1['islogin']=True
return 'login success'
else:
return '账户密码错误'

@outer
def admin():
print('访问后台管理系统')

while True:
p=int(input('1 登陆 2 后天系统\n'))
if p==1:
login()
elif p==2:
admin()
else:
break
 
posted @ 2022-06-27 09:09  刘乐乐liu  阅读(29)  评论(0)    收藏  举报