编写一个名为Privileges 的类,它只有一个属性——privileges ,其中存储了练习9-7 所说的字符串列表。将方法show_privileges() 移到这 个类中。在Admin 类中,将一个Privileges 实例用作其属性。创建一个Admin 实例,并使用方法show_privileges() 来显示其权限。
#9-7
class User():
def __init__(self, first_name, last_name, address):
self.first_name = first_name
self.last_name = last_name
self.address = address
def describe_user(self):
print('First name: ' + self.first_name.title())
print('Last name: ' + self.last_name.title())
print('Address: ' + self.address.title())
def greet_user(self):
self.full_name = self.first_name.title() + ' ' + self.last_name.title()
print("Welcome come to enjoy us, " + self.full_name.title() + "!")
class Admin(User):
def __init__(self , first_name , last_name , address):
super().__init__(first_name , last_name , address)
self.privileges = Privileges()
#9-8
class Privileges():
def __init__(self):
self.priviliges = ['can add post', 'can delete post', 'can ban user']
def show_privileges(self):
for n in self.priviliges:
print("This admin " + n)
z = Admin('Alice' , 'wang' , 'xian')
z.describe_user()
z.greet_user()
print('\nThe power of admin')
z.privileges.show_privileges() #注意这里第二部分是Admin的属性privileges 并不是Privileges这个类
结果
First name: Alice
Last name: Wang
Address: Xian
Welcome come to enjoy us, Alice Wang!The power of admin
This admin can add post
This admin can delete post
This admin can ban user