User类(属性包含姓名和权限,方法包 含添加权限、权限回收、权限显示) 2. Admin类(user的子类,方法包含:添 加用户、删除用户以及权限管理)二、权限表示和存储 1. 要求采用2个字典分别存储权限和用户信息。 2. 5种权限分别用0b00001、0b00010、0b00100、0b01000、0b10000表示,用位运算进行权限操作。,写程序
时间: 2024-03-27 17:39:47 浏览: 147
好的,我明白了你的问题。以下是一个简单的实现,包括User类、Admin类、权限表示和存储的字典。
```python
class User:
def __init__(self, name, permission=0):
self.name = name
self.permission = permission
def add_permission(self, perm):
self.permission |= perm
def remove_permission(self, perm):
self.permission &= ~perm
def show_permission(self):
print(bin(self.permission))
class Admin(User):
def __init__(self, name, permission=0):
super().__init__(name, permission)
self.user_dict = {}
self.permission_dict = {0b00001: 'permission1',
0b00010: 'permission2',
0b00100: 'permission3',
0b01000: 'permission4',
0b10000: 'permission5'}
def add_user(self, name):
user = User(name)
self.user_dict[name] = user
def remove_user(self, name):
self.user_dict.pop(name)
def manage_permission(self, name, perm, action):
user = self.user_dict.get(name)
if user:
if action == 'add':
user.add_permission(perm)
elif action == 'remove':
user.remove_permission(perm)
else:
print('User not found')
```
在上面的代码中,User类包含姓名和权限属性,以及添加权限、权限回收、权限显示的方法。Admin类是User的子类,包含添加用户、删除用户以及权限管理的方法。权限表示使用二进制数表示,用位运算进行权限操作。在Admin类中,我们使用两个字典来存储用户信息和权限信息,方便管理。
下面是一个简单的使用示例:
```python
admin = Admin('Admin')
# 添加用户
admin.add_user('User1')
admin.add_user('User2')
# 管理权限
admin.manage_permission('User1', 0b00001, 'add') # 添加 permission1 权限
admin.manage_permission('User2', 0b00100, 'add') # 添加 permission3 权限
admin.manage_permission('User1', 0b01000, 'remove') # 移除 permission4 权限
# 显示用户权限
for user in admin.user_dict.values():
print(user.name)
user.show_permission()
```
输出结果:
```
User1
0b00001
User2
0b00100
```
阅读全文