9-8
权限
:编写一个名为
Privileges
的类,它只有一个属性
——
privileges
,其中存储了练习 9-7
所说的字符串列表。将方法
show_privileges()
移到这个类中。在
Admin类中,将一个 Privileges
实例用作其属性。创建一个
Admin
实例,并使用方法show_privileges()来显示其权限。
记录学习的过程中遇到的记得记录的题目。这道题在做的时候到在Admin类中调用Privileges类中的show_privileges()方法来显示管理员的权限的时候懵住了,一时间不知道如何将值传入到Privileges类中的privileges属性中,后来在多次尝试下才写出来。所以记录下来,并且分享给大家一起学习!
# 创建User类
class User():
def __init__(self, first_name, last_name):
self.first_name = first_name
self.last_name = last_name
self.login_attempts = 0
def describe_user(self):
print("Full name is " + self.first_name.title() + self.last_name.title())
def greeter_user(self):
print("Hello!! " + self.first_name.title() + self.last_name.title())
def increment_login_attempts(self):
self.login_attempts += 1
def reset_login_attempts(self):
self.login_attempts = 0
# 创建Privileges类
class Privileges():
def __init__(self, *privileges):
self.privileges = privileges
def show_privileges(self):
print("The admin's privileges is following:")
for privilege in self.privileges:
print(privilege)
# 创建Admin类
class Admin(User):
def __init__(self, first_name, last_name):
super().__init__(first_name, last_name)
self.privileges = Privileges()
admin0 = Admin('xiaoming', 'li')
admin0.privileges.privileges = ['can add post', 'can delete post', 'can ban user']
admin0.privileges.show_privileges()