Python编程从入门到实践第九章练习三
练习9-7
# 管理员:编写一个名为Admin的类,让它继承case9-3或9-5编写的User类。添加一个名为privileges的属性,用于存储一个由字符串组成的列表编写一个名为show_privileges的方法,显示管理员的权限。创建一个Admin实例,并调用这个方法。
1 class User:
2 """描述用户信息"""
3
4 def __init__(self,first_name,last_name):
5 """初始化描述用户信息"""
6 self.first_name = first_name
7 self.last_name = last_name
8 self.login_attempts = 0
9
10 def describe_user(self):
11 """描述用户信息概要"""
12 print(f"First name:{self.first_name}")
13 print(f"Last name:{self.last_name}")
14
15 def greet_user(self):
16 """向用户发出个性化问候"""
17 full_name = f"{self.first_name} {self.last_name}"
18 print(f"\nHello {full_name}!")
19
20 def increment_login_attempts(self):
21 """增加登录的次数"""
22 self.login_attempts += 1
23
24 def reset_login_attempts(self):
25 """重置登录次数"""
26 self.login_attempts = 0
27
28 class Admin(User):
29 """管理员信息"""
30
31 def __init__(self,first_name,last_name): #复制父类的所有属性
32 """初始化父类属性"""
33 super().__init__(first_name,last_name) #调用父类的所有方法
34 self.privileges = ['can add post','can delete post','can ban user']
35
36 def show_privileges(self):
37 """显示管理员权限"""
38 print("\nThe administrator has the following privileges: ")
39 for self.privilege in self.privileges:
40 print(self.privilege)
41
42 Admin = Admin('kobe','bryant')
43 Admin.show_privileges()
练习9-8
# 权限:编写一个名为Privileges的类,它只有一个属性,其中存储了case9-7所属的字符串列表。将方法show_privileges移到这个类中。在Admin类中,讲一个Privileges实例作为其属性。创建一个Admin实例,并使用方法show_privileges()来显示其权限。
1 class User:
2 """描述用户信息"""
3
4 def __init__(self,first_name,last_name):
5 """初始化描述用户信息"""
6 self.first_name = first_name
7 self.last_name = last_name
8 self.login_attempts = 0
9
10 def describe_user(self):
11 """描述用户信息概要"""
12 print(f"First name:{self.first_name}")
13 print(f"Last name:{self.last_name}")
14
15 def greet_user(self):
16 """向用户发出个性化问候"""
17 full_name = f"{self.first_name} {self.last_name}"
18 print(f"\nHello {full_name}!")
19
20 def increment_login_attempts(self):
21 """增加登录的次数"""
22 self.login_attempts += 1
23
24 def reset_login_attempts(self):
25 """重置登录次数"""
26 self.login_attempts = 0
27
28 class Privileges:
29 """管理员权限"""
30
31 def __init__(self):
32 """初始化描述权限"""
33 self.privileges = ['can add post','can delete post','can ban user']
34
35 def show_privileges(self):
36 """显示权限"""
37 print("\nThe administrator has the following privileges: ")
38 for self.privilege in self.privileges:
39 print(self.privilege)
40
41 class Admin(User):
42 """管理员信息"""
43
44 def __init__(self,first_name,last_name): #复制父类的所有属性
45 """初始化父类属性"""
46 super().__init__(first_name,last_name) #调用父类的所有方法
47 self.privileges = Privileges()
48
49 Admin = Admin('kobe','bryant')
50 Admin.privileges.show_privileges() #调用Admin实例中的属性privileges,该属性让python创建一个新的Privileges实例,调用次实例中的方法

浙公网安备 33010602011771号