day_05双层装饰器原理_字符串格式化
2016-07-01 12:36
417 查看
1.执行是从外层调用里层
2.调用有返回值,从最里面往最外面返回,
3.
发发发发发发斯蒂芬的地方 agex fsdfsd +50
fsd %
fsdfsd ag %
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 %
相关文章推荐
- RocketMQ(四)特性
- 24种设计模式——门面模式
- 通信黑科技:NB-IoT
- PowerDesigner V16.5 安装文件 及 破解文件
- 什么是MIME?
- 如何下载谷歌地球高程为SHP格式的等高线
- Problem S
- 2014年基于Raspberry Pi的5大项目
- 2014年基于Raspberry Pi的5大项目
- hihoCode题目2
- TCP/IP TIME_WAIT状态原理
- Python字符编码判断方法分析
- 别再TM跟我说找不到满意的工作!
- xcode 菜单详解
- Gradle 实现编译和运行Java程序
- 688B: Lovely Palindromes
- 51NOD 1417 天堂里的游戏(列等式 解方程)
- 浅谈Java中的hashcode方法
- classpnp.sys 卡住
- mysql iot 主键自增列问题