9.4 导入类——9.4.3 从一个模块中导入多个类:导入模块:user中的类:User,Privileges,Admin

# -*- 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()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值