1.执行是从外层调用里层
2.调用有返回值,从最里面往最外面返回,
3.
def check_login(func): def inner(*args,**kwargs): if USER_INFO.get("Login_status",None)==True: func(*args,**kwargs) else: print("请登录") return inner def check_info(func): def inner(*args,**kwargs): if USER_INFO["Login_number"]==2: et=func(*args,**kwargs) return et else: print("没有权限") return inner @check_login @check_info def index(): print("INdex") @check_login def home(): print("Home") def login(): username=input("请输入你的账号") if username=="admin": USER_INFO["Login_status"]=True USER_INFO["Login_number"]=2 else: USER_INFO["Login_status"]=True USER_INFO["Login_number"]=1 def main(): while True: choose_number=input("1.登录 2.查看信息 3.高级管理员") if choose_number=="1": login() elif choose_number=="2": home() elif choose_number=="3": index() else: print("输入错误请重新输入") main()
#+号不能用于d的前面 下面的10代表的是占位符 如果是正数,代码 ,如果参数是正数,则前面加+号 s="发发发发发发斯蒂芬的地方 %(name)-10s fsdfsd%(age)+10d"%({"name":"agex","age":50}) print(s)发发发发发发斯蒂芬的地方 agex fsdfsd +50
pp="fsdfsdfsd %c %o %x %e"%(65,15,15,12020202022)#c 是Ascii码 o 是八进制, x是十六进制 print(pp)
#%g是自动在浮点型和科学计数法直接转换 pp="fsdfsdfsd %c %o %x %g"%(65,15,15,123) print(pp)
p="fsd %" print(p) p="fsdfsd %s %%"%("ag")#如果出现占位符,得用两个百分号表示一个百分号 print(p)
fsd %
fsdfsd ag %