如何检查列表中类实例是否含指定name属性?Python实现
实现城市创建程序的信息查询功能
核心逻辑
- 解析用户输入,提取待查询的建筑/道路名称
- 通过
if/elif逻辑依次检查建筑列表、道路列表中的实例name属性 - 匹配成功则调用对应实例的
info()方法,无匹配则给出提示
代码实现
# 假设已定义Building、Road类,且实例已存入buildings、roads列表 class Building: def __init__(self, name): self.name = name def info(self): print(f"【建筑详情】名称:{self.name},可在此补充更多属性信息") class Road: def __init__(self, name): self.name = name def info(self): print(f"【道路详情】名称:{self.name},可在此补充更多属性信息") # 处理用户输入 user_input = input("请输入指令:").strip() if user_input.startswith("info "): target_name = user_input.split("info ", 1)[1] # 检查建筑列表 is_found = False for building in buildings: if building.name == target_name: building.info() is_found = True break # 未找到建筑则检查道路列表 if not is_found: for road in roads: if road.name == target_name: road.info() is_found = True break # 无匹配项提示 if not is_found: print(f"未找到名为「{target_name}」的建筑或道路") else: print("指令格式错误,请使用:info + 建筑/道路名称")
关键说明
- 用
startswith("info ")校验指令格式,避免因名称含空格导致的拆分错误 - 遍历列表时匹配实例的
name属性,找到后立即终止循环并调用info(),提升效率 - 通过
is_found标记控制条件流,符合需求中的if/elif判断要求
内容的提问来源于stack exchange,提问作者BackOut
相关产品推荐
相关产品推荐

