Python实现输入员工编号获取对应Worker实例详情的方法
按编号调用Worker实例详情的简洁实现
不用冗长的if-else,有两种简单方法可以实现你的需求:
方法一:用字典映射实例(推荐,更安全)
先把所有Worker实例按编号存到字典里,之后直接通过编号查字典调用方法:
# 先创建映射字典,把你的Worker实例对应到编号 worker_map = { 31: Worker_31, 32: Worker_32, 33: Worker_33, 34: Worker_34, 35: Worker_35, 36: Worker_36, 37: Worker_37, 38: Worker_38, 39: Worker_39, 40: Worker_40, 41: Worker_41 } # 获取用户输入并处理 worker_id = int(input("请输入员工编号(31-41):")) if worker_id in worker_map: print(worker_map[worker_id].details) else: print("输入的编号不存在")
方法二:通过全局命名空间动态获取实例(更省事)
利用Python的globals()函数,根据输入的编号拼接实例名称,直接获取对应实例:
worker_id = int(input("请输入员工编号(31-41):")) # 拼接实例名称,比如输入36就得到"Worker_36" instance_name = f"Worker_{worker_id}" # 从全局变量里取出对应的实例 worker = globals().get(instance_name) if worker: print(worker.details) else: print("输入的编号不存在")
两种方法对比
- 方法一需要手动维护字典,但能明确控制哪些实例可以被调用,避免意外访问其他变量,安全性更高。
- 方法二不用手动写映射,适合你这种实例命名规则固定的场景,但如果全局空间里有同名变量可能会出问题。
内容的提问来源于stack exchange,提问作者The Stupid Person
相关产品推荐
相关产品推荐

