1. 程式人生 > >第五次作業(第九章)

第五次作業(第九章)

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=0
while 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()