# -*- coding:utf-8 -*-
#li hongliang 2020年06月26日
#9.3 继承
#9-8 权限:编写一个名为Privileges 的类,它只有一个属性——privileges,其中
#存储了练习9-7 所说的字符串列表。将方法show_privileges()移到这个类中。在Admin
#类中,将一个Privileges 实例用作其属性。创建一个Admin 实例,并使用方法
#show_privileges()来显示其权限。
class User():
def __init__(self,first_name,last_name,login_attempts,**user_info):
"""包含用户姓与名及其它几个属性"""
self.name = {} #定义空字典
self.first_name = first_name
self.last_name = last_name
self.login_attempts = login_attempts
for k,v in user_info.items():
self.name[k]= v #将所有字典值赋值给字典name,其实姓名也可以赋值到这个字典里面
def describe_user(self):
'''打印用户信息摘要'''
print('以下为用户的基本信息: ')
self.fullname = self.first_name + self.last_name
print('姓名:'+ self.fullname)
for key,value in self.name.items(): #使用字典里面的信息
print( key + ': '+str(value))
def greet_user(self):
print(self.first_name.title() + self.last_name.title() +' Welcome to join us')
def increment_login_attempts(self):
self.fullname = self.first_name + self.last_name
self.login_attempts += 1
print(self.fullname.title() + ' 尝试登录次数是'+ str(self.login_attempts) + '次' )
def reset_login_attempts(self):
self.fullname = self.first_name + self.last_name
self.login_attempts = 0
print('重置用户 '+self.fullname.title() + '登录次数为'+ str(self.login_attempts) + '次')
class Privileges():
def __init__(self,privileges):
self.privileges = privileges
def show_privileges(self):
print('The administrator has the following permissions :')
for self.privilege in self.privileges:
print(self.privilege.title())
class Admin(User):
def __init__(self,first_name,last_name,login_attempts,privileges,**user_info):
super().__init__(first_name,last_name,login_attempts,**user_info)
self.privileges = Privileges(privileges) #在Admin类中增加了一个Privileges类 实例用作其属性。
print('\n')
#admin1 = Admin('li','quan','1',["can add post","can delete post","can ban user","Can add users","Users can be deleted"],occupation='test',phone='13202973253')
#admin1.privileges.show_privileges()
9.4 导入类——9.4.3 从一个模块中导入多个类:导入模块:user中的类:User,Privileges,Admin
最新推荐文章于 2022-08-24 22:54:58 发布