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()

一个模块文件怎么可以引用另一个模块文件的代码
1import导入 具体为:import package.module

 

 引用另一个模块

 

 获取当前路径

 

获取路径上一级目录

 

 输入控制台的命令

 

 获取目录下所有文件

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

posted @ 2021-11-25 20:22  高。  阅读(38)  评论(0)    收藏  举报