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实例,调用次实例中的方法

 

上一篇:MySql权限


下一篇:mysql安装与启动