9-3 使用者:建立乙個名為user 的類,其中包含屬性first_name 和last_name,還有
使用者簡介通常會儲存的其他幾個屬性。在類user 中定義乙個名為describe_user()的方
法,它列印使用者資訊摘要;再定義乙個名為greet_user()的方法,它向使用者發出個性化
的問候。
建立多個表示不同使用者的例項,並對每個例項都呼叫上述兩個方法。
9-5 嘗試登入次數:在為完成練習9-3 而編寫的user 類中,新增乙個名為
login_attempts 的屬性。編寫乙個名為increment_login_attempts()的方法,它將屬性
login_attempts 的值加1。再編寫乙個名為reset_login_attempts()的方法,它將屬性
login_attempts 的值重置為0。
根據user 類建立乙個例項,再呼叫方法increment_login_attempts()多次。列印屬
性login_attempts 的值,確認它被正確地遞增;然後,呼叫方法reset_login_attempts(),
並再次列印屬性login_attempts 的值,確認它被重置為0。
class user():
def __init__(self, first_name, last_name, age):
self.first_name=first_name
self.last_name=last_name
self.age=age
self.login_attempts=0
def describe_user(self):
print("first name: "+self.first_name.title())
print("last name:"+self.last_name.title())
print("age: "+str(self.age))
print("login attempts: "+str(self.login_attempts))
def greet_user(self):
print("hello, "+self.first_name.title()+" "+self.last_name.title())
def reset_login_attempts(self):
self.login_attempts=0
def increment_login_attempts(self):
self.login_attempts+=1
user1=user("peter", "liang", 19)
user1.greet_user()
i=0while i<5:
user1.increment_login_attempts()
i+=1
user1.describe_user()
user1.reset_login_attempts()
user1.describe_user()
user2=user("bill", "herington", 47)
user2.greet_user()
user2.describe_user()
9-7 管理員:管理員是一種特殊的使用者。編寫乙個名為admin 的類,讓它繼承你為
完成練習9-3 或練習9-5 而編寫的user 類。新增乙個名為privileges 的屬性,用於存
儲乙個由字串(如"can add post"、"can delete post"、"can ban user"等)組成的
列表。編寫乙個名為show_privileges()的方法,它顯示管理員的許可權。建立乙個admin
例項,並呼叫這個方法。
9-8 許可權:編寫乙個名為privileges 的類,它只有乙個屬性——privileges,其中
儲存了練習9-7 所說的字串列表。將方法show_privileges()移到這個類中。在admin
類中,將乙個privileges 例項用作其屬性。建立乙個admin 例項,並使用方法
show_privileges()來顯示其許可權。
class user():
def __init__(self, first_name, last_name, age):
self.first_name=first_name
self.last_name=last_name
self.age=age
def describe_user(self):
print("first name: "+self.first_name.title())
print("last name:"+self.last_name.title())
print("age: "+str(self.age))
def greet_user(self):
print("hello, "+self.first_name.title()+" "+self.last_name.title())
class privileges():
def __init__(self, privileges):
self.privileges=privileges
def show_privileges(self):
for privilege in self.privileges:
print(privilege)
class admin(user):
def __init__(self, first_name, last_name, age, pr):
super().__init__(first_name, last_name, age)
self.pr=pr
pr1=["can add post", "can delete post" , "can ban user"]
pr2=["can add post", "can delete post"]
pr3=["can add post"]
pr1=privileges(pr1)
pr2=privileges(pr2)
pr3=privileges(pr3)
p=admin("peter", "liang", 19, pr1)
b=admin("bill", "herington", 47, pr2)
j=admin("james", "jobs", 12, pr3)
print(p.first_name+" "+p.last_name+":")
p.pr.show_privileges()
print(b.first_name+" "+p.last_name+":")
b.pr.show_privileges()
print(j.first_name+" "+p.last_name+":")
j.pr.show_privileges()
第九章作業
班級 0401304 學號 2013211526 姓名 鄧小俊 2.身份驗證 依據使用者所提供的身份資訊,來進行登入驗證,可以再細分為使用者是否可以登入sql sever 使用者是否可以登入到指定的目標資料庫等。授權 已通過身份驗證的使用者,檢查其所被賦予的許可權,是否可以訪問或者執行目標的物件 3...
作業第九章
一,簡答題 1.什麼是二重迴圈?在內層迴圈中使用continue和break語句,程式如何跳轉?答 1 就是乙個迴圈體內又包含另乙個完整的迴圈結構。2 continue語句是跳出本次迴圈,進入下一次迴圈。break是跳出本層迴圈,即提前結束本層迴圈,執行迴圈下面的語句。2.編寫程式,列印如下圖案,要...
第九章(筆記)
轉移指令是可以修改ip,或同時修改cs和ip的指令 offset 是用於提取標號偏移位址的操作符 jmp在第2章裡說到時用於修改ip或同時修改cs和ip的轉移指令,這章裡單獨的jmp指令是乙個無條件的轉移指令 jmp short 標號 是實現段內短轉移 jmp near ptr 標號 是實現段內近轉...