11.25
问题:
登录一直修改,导致其他模块一直修改,我只想查看订单数据和
后台数据,不想修改是否登录成功的逻辑,但是还需要查看系统
本身的业务。
解决问题:装饰器需要解决的是把判断登录成功单独的分离出来,就只
需要在一地方维护。
1、把判断登录成功的代码
2、同时针对其他需要登录的模块,在这些模块里面不编写判断登录成功的逻辑,让这些模块也可以在
登录成功的情况下进行业务操作
解读:
1、被装饰的函数其实在装饰器里面是装饰器函数的形式函数,可以说func=order func=admin
2、被装饰的函数真正执行的时候,其实本质上执行的是装饰器的函数,因为被装饰的函数这个时候其实已经是装饰
器函数的内层函数
3、一旦结合装饰器后,调用被装饰的函数其实执行的是inner函数的内部函数,原来的被装饰的函数被覆盖;
4、一旦这个函数被装饰器装饰之后,被装饰的函数重新赋值成装饰器的内层函数
dict1={'isLogin':False}
def outer(func):
def inner():
if dict1['isLogin']:
return func()
else:
print('请登录系统')
return inner
def login():
username=input('请输入用户名:\n')
password=input('请输入密码:\n')
if username=='peng' and password=='zxc':
dict1['isLogin']=True
print('登录成功')
else:
return False
@outer
def order():
'''查看订单的明细数据'''
print('你授权查看公司所有的账单明细')
@outer
def admin():
'''后台查看核心的公司数据'''
print('你已授权查看公司核心的数据')
def main():
while True:
f=int(input('1、登录 2、财务数据 3、核心数据 4、其他\n'))
if f==1:
login()
elif f==2:
order()
elif f==3:
admin()
elif f==4:break
main()
一个模块文件怎么可以引用另一个模块文件的代码
1、import导入 具体为:import package.module



引用另一个模块



获取当前路径


获取路径上一级目录


输入控制台的命令


获取目录下所有文件


获取目录下所有的文件,并读取内容



浙公网安备 33010602011771号