您的位置:首页 > 其它

day_05双层装饰器原理_字符串格式化

2016-07-01 12:36 417 查看
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 %
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: