Python如何将txt汽车数据绑定到CAR类生成可运算实例列表
实现方案
核心修改说明
你原来的代码有两个核心问题需要调整:
- CAR类当前用的是类属性,所有实例会共享属性值,需要改成实例属性保证每辆车的属性独立
- 读取到的字符串列表需要拆分、做类型转换后,才能生成CAR类实例
完整可运行代码
# 定义CAR类 class CAR: # 构造方法,初始化每个实例的独立属性 def __init__(self, brand, model, price): self.brand = brand # model和price存为整数,方便后续做运算 self.model = int(model) self.price = int(price) def readdoc(file_path): car_instance_list = [] # 用with语句自动管理文件,避免忘记关闭导致资源泄漏 with open(file_path, 'r', encoding='utf-8') as f: for line in f: # 去除首尾空白后按分号拆分三个字段 brand, model, price = line.strip().split(';') # 生成CAR实例加入结果列表 car_instance_list.append(CAR(brand, model, price)) return car_instance_list # 调用测试 if __name__ == '__main__': cars = readdoc("doc.txt") # 输出第一辆车信息验证 print(cars[0].brand, cars[0].model, cars[0].price) # 示例:对price和model做乘法运算 for car in cars: print(f"{car.brand}运算结果:{car.model * car.price}")
如果你要复用已有的字符串列表
如果你的逻辑已经生成了存储字符串的列表listA,可以直接用如下代码完成转换:
car_list = [] for item in listA: brand, model_str, price_str = item.split(';') car_list.append(CAR(brand, int(model_str), int(price_str)))
其他注意点
- 原
readdoc函数定义末尾缺少冒号,属于语法错误,上述代码已经修复 - model和price统一转成整数类型,可直接做加减乘除、比较等任意数学运算
内容的提问来源于stack exchange,提问作者PythoNoob
相关产品推荐
相关产品推荐

