日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Property Exercise

發布時間:2024/4/17 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Property Exercise 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
要求一:自定義用戶信息數據結構,寫入文件,然后讀出內容,利用eval重新獲取數據結構3 with open('user.db','w') as write_file:#創建并以寫入的方式打開一個文件user.db4 write_file.write(str({5 "egon":{"password":"123",'status':False,'timeout':0},6 "alex":{"password":"456",'status':False,'timeout':0},7 }))#在user.db中加入兩個用戶信息以字典的方式儲存8 9 with open('user.db','r') as read_file:#以只讀的方式打開一個文件user.db 10 data=read_file.read()#讀取user.db中的數據 11 d=eval(data)#將user.db中的數據轉為字典 12 print(d['egon']['password'])#打印字典中egon的password 對應value 13 print(d['egon']['status']) 14 print(d['egon']['timeout'])


求二:定義用戶類,定義屬性db,執行obj.db可以拿到用戶數據結構3 class User: #定義User類4 db_path='user.db'5 def __init__(self,username): #在實例化User類時,傳入Username參數的值6 self.username=username7 @property#將db()方法作為屬性,讓用戶調用8 def db(self):9 data=open(self.db_path,'r').read()#以只讀的方式打開文件user.db 10 return eval(data)#以字典的方式返回user.db中的內容 11 u=User('egon')#實例化對象u,傳入egon 12 print(u.db['egon'])#打印又u.db()返回的字典中,對應egon的value 13 print(u.db['egon']['password'])#打印又u.db()返回的字典中,對應egon的password,value


求三:分析下述代碼的執行流程3 import time4 class User:#定義User類5 db_path='user.db'6 def __init__(self,name): #在實例化User類時,傳入name參數的值7 self.name=name8 @property#將db()方法作為屬性,讓用戶調用,同時產生db.setter和db.del方法9 def db(self): 10 with open(self.db_path,'r') as read_file:#當調用db方法時,打開文件user.db 11 info=read_file.read() 12 return eval(info)#以字典的方式返回user.db中的用戶信息 13 @db.setter#在對db屬性進行修改操作的時候,調用此方法 14 def db(self,value): 15 with open(self.db_path,'w') as write_file:#創建并打開一個文件user.db 16 write_file.write(str(value))#在文件中寫入db屬性得到的值 17 write_file.flush()#刷新文件的緩沖區域,讓數據立刻寫入文件 18 def login(self): #定義login方法 19 data=self.db#data得到db方法(現在被@property修飾過的屬性)返回的user.db中的數據 20 if data[self.name]['status']:#判斷name的status字段是否為Ture 21 print('已經登錄') 22 return True 23 if data[self.name]['timeout'] < time.time(): #判斷name的timeout字段值是否小于....呃~1970年到現在的時間 24 count=0 25 while count < 3: 26 passwd=input('password>>: ')#輸入密碼 27 if not passwd:continue#如果密碼為空,那么重新循環到輸入密碼 28 if passwd == data[self.name]['password']: #輸入密碼正確 29 data[self.name]['status']=True#更改用戶的登陸狀態 30 data[self.name]['timeout']=0#超時字段歸0 31 self.db=data#將改寫過的值重新調用db.setter方法存入user.db文件中,在用戶看來就是對db屬性進行了重新的賦值操作 32 break 33 count+=1#只允許用戶輸入三次錯誤的機會 34 else: 35 data[self.name]['timeout']=time.time()+10#如果三次輸入錯誤,那么該用戶將被鎖定10秒 36 self.db=data#將改寫過的值重新調用db.setter方法存入user.db文件中,在用戶看來就是對db屬性進行了重新的賦值操作 37 else:#如果判斷用戶的timeout大于1970年到現在的值 38 print('賬號已經鎖定10秒') 39 40 u1=User('egon') #實例化u1傳入name,egon 41 print("egon login:") 42 u1.login()#u1調用login的方法



四:根據上述原理,編寫退出登錄方法(退出前要判斷是否是登錄狀態),自定義property,供用戶查看自己賬號的鎖定時間3 import time4 class User:#定義User類5 db_path='user.db'6 def __init__(self,name): #在實例化User類時,傳入name參數的值7 self.name=name8 print("%s Login:"%self.name)9 @property#將db()方法作為屬性,讓用戶調用,同時產生db.setter和db.del方法 10 def db(self): 11 with open(self.db_path,'r') as read_file:#當調用db方法時,打開文件user.db 12 info=read_file.read() 13 return eval(info)#以字典的方式返回user.db中的用戶信息 14 @db.setter#在對db屬性進行修改操作的時候,調用此方法 15 def db(self,value): 16 with open(self.db_path,'w') as write_file:#創建并打開一個文件user.db 17 write_file.write(str(value))#在文件中寫入db屬性得到的值 18 write_file.flush()#刷新文件的緩沖區域,讓數據立刻寫入文件 19 @property 20 def UserLockTime(self): 21 return int(self.db[self.name]["timeout"]-time.time()) 22 def loginOut(self): 23 data = self.db 24 if(data[self.name]['status']): 25 print(self.name, "正在登出.....") 26 data[self.name]['status'] = False 27 self.db = data 28 time.sleep(2) 29 print(self.name,"登出成功!") 30 else: 31 print(self.name,"并沒有登陸") 32 def login(self): #定義login方法 33 data=self.db#data得到db方法(現在被@property修飾過的屬性)返回的user.db中的數據 34 if data[self.name]['status']:#判斷name的status字段是否為Ture 35 print('已經登錄') 36 return True 37 if data[self.name]['timeout'] < time.time(): #判斷name的timeout字段值是否小于....呃~1970年到現在的時間 38 count=0 39 while count < 3: 40 passwd=input('password>>: ')#輸入密碼 41 if not passwd:continue#如果密碼為空,那么重新循環到輸入密碼 42 if passwd == data[self.name]['password']: #輸入密碼正確 43 data[self.name]['status']=True#更改用戶的登陸狀態 44 data[self.name]['timeout']=0#超時字段歸0 45 self.db=data#將改寫過的值重新調用db.setter方法存入user.db文件中,在用戶看來就是對db屬性進行了重新的賦值操作 46 print("歡迎%s登陸,馬上為您進行登出服務"%self.name) 47 time.sleep(3) 48 break 49 count+=1#只允許用戶輸入三次錯誤的機會 50 else: 51 data[self.name]['timeout']=time.time()+180#如果三次輸入錯誤,那么該用戶將被鎖定180秒 52 self.db=data#將改寫過的值重新調用db.setter方法存入user.db文件中,在用戶看來就是對db屬性進行了重新的賦值操作 53 else:#如果判斷用戶的timeout大于1970年到現在的值 54 print('賬號已經鎖定180秒,剩余%s秒'%self.UserLockTime) 55 u1=User('egon') #實例化u1傳入name,egon 56 u1.login()#u1調用login的方法 57 u1.loginOut()#u1調用loginOut方法 58 u2=User('alex') 59 u2.login()





轉載于:https://www.cnblogs.com/Baby-Lady/p/6751589.html

總結

以上是生活随笔為你收集整理的Property Exercise的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产在线一二三 | 国产精品wwww | 色偷偷视频 | 久久一区二区三区视频 | 亚欧成人 | 色99视频 | 老师的肉丝玉足夹茎 | 国产视频在线观看免费 | 国模视频在线 | 亚洲高清免费视频 | 爱搞逼综合网 | 情涩快播 | 成人高清视频在线观看 | 日韩免费成人 | 色噜噜网站 | 国产11页 | 天堂av.com | 中文久久久 | 国产成人无码一二三区视频 | 精品无码久久久久成人漫画 | 天天干天天操天天插 | 在线观看日本中文字幕 | 中文字幕第二页 | 冲田杏梨在线 | 娇妻第一次尝试交换的后果 | 一级黄色大片免费观看 | 雪白的扔子视频大全在线观看 | 新av在线 | 中文字幕在线免费观看视频 | 黄色小说在线观看视频 | 亚洲涩涩涩 | 男女激情av| 久久久久久久久久电影 | 国产精品综合久久久 | 六月婷婷在线 | 国产日本欧美一区二区 | av大片在线免费观看 | 爱草在线视频 | 日韩成人av一区 | 免费黄色视屏 | 日本黄色不卡 | 青娱乐最新视频 | 成人免费看黄 | 欧美又大粗又爽又黄大片视频 | 国产综合久久 | 丰满少妇大力进入 | 天堂网中文 | japanese24hdxxxx日韩 | 亚洲欧洲日韩 | 国产suv精品一区二区三区 | 亚洲国产成人久久 | 国产精品永久在线观看 | 男女超爽视频免费播放 | 国产精品毛片一区二区在线看舒淇 | 国产大尺度视频 | 国产视频123区 | 成人黄色免费看 | 麻豆久久精品 | 成人无遮挡| 暖暖av| 香蕉影院在线观看 | 亚洲乱色熟女一区二区三区 | 日本a级大片 | 日本女人一级片 | 97在线免费公开视频 | 韩国一级一片高清免费观看 | 国产三级在线观看完整版 | 国产无码日韩精品 | 一级做a爰片毛片 | 亚洲中文字幕无码一区 | 免费的毛片视频 | 少妇一级淫片免费看 | 国产欧美一区二区精品性色超碰 | 久久96| 午夜黄色在线 | 久久发布国产伦子伦精品 | 欧美性tv | 在线激情av | 99久久人妻无码中文字幕系列 | av美女在线 | 在线观看免费中文字幕 | 9i在线看片成人免费 | 91精品国产综合久久国产大片 | 最近免费中文字幕中文高清百度 | 视频在线看| 91免费国产在线观看 | 99精品一区二区三区 | 男人天堂一区二区 | 俺来也俺也啪www色 欧洲一区二区视频 | 激情内射亚洲一区二区三区爱妻 | 久久成人a | 人妻少妇偷人精品久久久任期 | 国产成人无码一区二区三区在线 | 欧美一区欧美二区 | 亚洲AV无码精品久久一区二区 | 色七七亚洲 | 久久国产乱子伦免费精品 | 天堂无乱码| 天天狠天天操 |