[英]Add attributes to class from list
我在 .txt 文件中有一个列表,其中包含有关汽车的数据。 名单是这样的:
Audi;2002;2500
Peugeot;1967;2040
Mercedes;2020;12000
等等,总共有10个项目。
我需要以某种方式使用一个以品牌、型号和价格为属性的类,并从中列出一个列表。 因此,以Audi 2002 2500
作为第一行, Peugeot 1967 2040
作为第二行等的 10 个元素的列表。
我已经走了这么远:
file = open("doc.txt", "r")
class CAR():
brand = ""
model = 0
price = 0
def readdoc(file, listA)
lines = 0
for line in file:
lines = lines + 1
listA.append(line.strip())
这个函数给我一个列表格式的文件['Audi;2002;2500, '...']
。
但后来我迷失了该怎么做。 我应该“组合”列表和类CAR
以某种方式制作一个列表,其中第一行是Audi 2002 2500
,然后我需要对价格和模型进行一些简单的计算(例如乘法)。
对于每一行,您可以拆分;
并使用 3 个值构建CAR
实例
class CAR:
brand: str
year: int
price: int
def __init__(self, brand, year, price):
self.brand = brand
self.year = year
self.price = price
def readdoc(file):
result = []
with open(file, "r") as file:
for line in file:
br, ye, pr = line.strip().split(";")
result.append(CAR(br, int(ye), int(pr)))
return result
cars = readdoc("doc.txt")
正如@Bharel 所提到的,您也可以在没有__init__
方法的情况下分配实例属性,而不是通常的做法(AFAIK),但基本上是一样的:
class Car:
brand: str = ''
year: int = 0
price: int = 0
def readfile(file):
result = []
with open(file, "r") as file:
for line in file:
brand, year, price = line.strip().split(";")
car = Car()
car.brand = brand
car.year = year
car.price = price
result.append(car)
return result
cars = readfile("doc.txt")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.