7.26 作业
发布人:shili8
发布时间:2025-03-13 05:47
阅读次数:0
**作业题目**
###1. 题目描述在一个虚拟世界中,存在着许多不同的角色,每个角色都有自己的特点、技能和属性。我们需要设计一个系统来管理这些角色,并且能够进行相应的操作,如创建角色、修改角色信息、删除角色等。
###2. 系统需求* 能够创建新的角色* 能够修改已有的角色信息* 能够删除不存在的角色* 能够查询所有角色信息* 能够根据条件筛选角色信息###3. 系统设计####3.1 角色类
class Role:
def __init__(self, id, name, skill, attribute):
"""
:param id: int :param name: str :param skill: list :param attribute: dict """
self.id = id self.name = name self.skill = skill self.attribute = attribute def __str__(self):
return f"Role(id={self.id}, name='{self.name}', skill={self.skill}, attribute={self.attribute})"
####3.2 角色管理类
class RoleManager:
def __init__(self):
self.roles = {}
def create_role(self, id, name, skill, attribute):
"""
:param id: int :param name: str :param skill: list :param attribute: dict """
if id in self.roles:
print(f"角色ID {id} 已存在")
return role = Role(id, name, skill, attribute)
self.roles[id] = role print(f"创建角色成功:{role}")
def update_role(self, id, name=None, skill=None, attribute=None):
"""
:param id: int :param name: str :param skill: list :param attribute: dict """
if id not in self.roles:
print(f"角色ID {id}不存在")
return role = self.roles[id]
if name is not None:
role.name = name if skill is not None:
role.skill = skill if attribute is not None:
role.attribute = attribute print(f"更新角色成功:{role}")
def delete_role(self, id):
"""
:param id: int """
if id not in self.roles:
print(f"角色ID {id}不存在")
return del self.roles[id]
print(f"删除角色成功")
def get_all_roles(self):
return list(self.roles.values())
def query_role_by_id(self, id):
return self.roles.get(id)
def query_role_by_name(self, name):
for role in self.roles.values():
if role.name == name:
return role return None# 使用示例role_manager = RoleManager()
# 创建角色role_manager.create_role(1, "角色1", ["技能1", "技能2"], {"属性1":1, "属性2":2})
# 查询角色print(role_manager.query_role_by_id(1))
# 更新角色role_manager.update_role(1, name="角色1更新")
# 删除角色role_manager.delete_role(1)
# 查询所有角色print(role_manager.get_all_roles())
###4. 总结本题目要求设计一个系统来管理角色,并且能够进行相应的操作,如创建角色、修改角色信息、删除角色等。我们使用 Python语言实现了一个 `Role` 类和一个 `RoleManager` 类,分别用于表示角色和管理角色。通过示例代码,我们展示了如何使用这些类来创建角色、更新角色信息、删除角色以及查询所有角色信息。
###5. 提交要求* 提交的代码必须包含上述示例代码* 提交的代码必须能够正确运行并且输出预期结果* 提交的代码必须遵循 Python语言规范和编码风格

