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代表的是佔位符 如果是正數,** ,如果引數是正數,則前面加+號發發發發發發史蒂芬的地方 agex fsdfsd +50s="發發發發發發史蒂芬的地方 %(name)-10s fsdfsd%(age)+10d"%()
print(s)
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 %
day05 陣列 排序
pragma mark 陣列 變數實際上就是乙個容器,陣列也是乙個容器,這個容器可以儲存更多的內容。1.陣列屬於構造型別 2.具有相同資料型別的成員組成一組陣列。3.儲存不同型別的陣列有對應的名稱,如 ios班 安卓版,同理,整數型別 陣列中的成員都是整數,浮點型陣列,陣列中的成員是浮點型。4.陣列...
遊戲開發Day05
1.建立材質球 2.更改shader屬性 3.新增6張材質圖 window lighting skybox 給目標物體新增自定義指令碼colliderchecked 重寫oncollisionenter方法 bool flag true void oncollisionenter else 1.新建...
迴圈練習day05
語法 表示式1 表示式 2 表示式3 運算規則 判斷表示式1的結果是否為真,為真則整個三目運算表示式的結果是表示式2的值,否則就是表示式3的值 a 10 20 30 40 print a 40 語法 表示式2 if 表示式1 else 表示式3 運算規則 判斷表示式1的結果是否為真,為真則整個三目運...