010python路--裝飾器應用之頁面登陸

#需求:京東購物前必需要登陸,而再次點擊購物時,函數

#           在新的頁面(函數)中,不須要再次輸入信息。
#           怎麼作到?
ui

#僞代碼描述問題所在
假設在文件中,user-zhaowei;passwd-123

def login(): usename = input("usename:") password = input("password:") if user == usename and password==passwd: print("welcome") @login def home(): print("...") @login def home2(): print("...") @login def home3(): print("...")

# 如今在每一個功能模塊,都要調用信息登陸函數,
# 未免太麻煩,怎樣作就簡單了?
# 只要登陸一次,第二次檢測是否登陸便可。
# 或者說,每次先檢驗是否登陸。spa

#建立一個狀態標記,標記登陸狀態
login_status = False def login(): if not login_status: #進行登陸
        login_status = True else: #pass

具體實現代碼code

logstate = False def loger(ways): def log(function): def inner(): global logstate # global ways
            if logstate is False: username = input("輸入用戶姓名:") password = input("輸入用戶密碼:") # 在文件中找信息:
                flag = False  # 判斷是否找到用戶信息的標記
                # 根據參數,查找不一樣文件
                if ways == 'weixin': open_file = '1.txt'
                elif ways == 'jindong': open_file = '2.txt' with open(open_file, 'r', encoding="utf-8") as file_JD: for i in file_JD: # 取出每一行數據,將數據轉化到字典中
                        a = i.split('-') if a[0] == username and a[1] == password: flag = True break
                if flag is True: function() logstate = True else: function() return inner return log # 各個功能函數
@loger("weixin") def home(): print("you are in home") @loger("jindong") def finance(): print("you are in finance") @loger("weixin") def book(): print("you are in book") # 1展現現有的欄目
print('''1.home 2.finance 3.book ''') # 2while中:用戶選擇服務,進入服務
while True: number = input("輸入您所需的服務:") if number == '1': # 調用home函數
 home() if number == '2': # 調用home函數
 finance() if number == '3': # 調用home函數
 book() if number == ':wq': exit("now you are quit")
相關文章
相關標籤/搜索