Python中创建ProductionWorkers类对象并实现用户输入与列表展示求助
解决方案
1. 完善类定义(适配常见的初步代码结构)
class Employee: def __init__(self, name, employee_id): self.name = name self.employee_id = employee_id class ProductionWorkers(Employee): def __init__(self, name, employee_id, shift_number, hourly_pay_rate): super().__init__(name, employee_id) self.shift_number = shift_number # 1=白班,2=夜班 self.hourly_pay_rate = hourly_pay_rate # 封装对象信息,方便后续展示 def to_dict(self): return { "姓名": self.name, "员工ID": self.employee_id, "班次": "白班" if self.shift_number == 1 else "夜班", "时薪": self.hourly_pay_rate }
2. 实现用户输入与对象创建
def get_valid_input(prompt, input_type, validator=None): while True: try: value = input_type(input(prompt)) if validator and not validator(value): print("输入不符合要求,请重新输入") continue return value except ValueError: print(f"请输入有效的{input_type.__name__}类型数据") def create_worker(): name = input("请输入员工姓名:") employee_id = input("请输入员工ID:") shift_num = get_valid_input( "请输入班次(1=白班,2=夜班):", int, lambda x: x in (1,2) ) hourly_rate = get_valid_input( "请输入时薪:", float, lambda x: x > 0 ) return ProductionWorkers(name, employee_id, shift_num, hourly_rate)
3. 收集数据并列表展示
def main(): workers = [] while True: worker = create_worker() workers.append(worker.to_dict()) cont = input("是否继续添加员工?(y/n):").strip().lower() if cont != 'y': break # 打印列表形式的员工数据 print("\n生产员工信息列表:") for i, info in enumerate(workers, 1): print(f"[{i}] {info}") if __name__ == "__main__": main()
关键说明
- 加入输入验证逻辑,避免无效输入导致程序崩溃
- 用
to_dict方法把对象属性转为字典,统一展示格式 - 支持批量创建员工,最后以列表形式输出所有数据
内容的提问来源于stack exchange,提问作者Adeliaryarts
相关产品推荐
相关产品推荐

