You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何将txt汽车数据绑定到CAR类生成可运算实例列表

实现方案

核心修改说明

你原来的代码有两个核心问题需要调整:

  1. CAR类当前用的是类属性,所有实例会共享属性值,需要改成实例属性保证每辆车的属性独立
  2. 读取到的字符串列表需要拆分、做类型转换后,才能生成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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 21:54:03