如何循环 Python 中的数据类?
How to loop through dataclass in Python?
我想遍历 python 中的数据类,以查找所有符合特定条件的汽车,但是,代码永远无法运行,因为变量被解释为属性,而不是多变的。
from dataclasses import dataclass
@dataclass
class cars:
year: int = 0
model: str = "unknown"
PS: int = 0
colour: str = "unknown"
car_1 = cars(year = 1980, colour = "brown")
car_2 = cars(year = 1999, colour = "black", PS = 82)
owned_cars = [car_1, car_2]
criteria = input("Which criteria to search for? year, model, PS, colour")
for car in owned_cars:
value = car.criteria
print(value, car)
AttributeError: 'cars' object has no attribute 'criteria'
使用时:
value = car.year
代码运行良好。我怎么知道 python,它应该将 criteria 解释为变量并使用它的内容,而不是它的名称?
这与 car
是数据类没有任何关系。 Python 属性就是这样工作的。如果要在字符串中按名称查找属性,请使用 getattr:
value = getattr(car, criteria)
我想遍历 python 中的数据类,以查找所有符合特定条件的汽车,但是,代码永远无法运行,因为变量被解释为属性,而不是多变的。
from dataclasses import dataclass
@dataclass
class cars:
year: int = 0
model: str = "unknown"
PS: int = 0
colour: str = "unknown"
car_1 = cars(year = 1980, colour = "brown")
car_2 = cars(year = 1999, colour = "black", PS = 82)
owned_cars = [car_1, car_2]
criteria = input("Which criteria to search for? year, model, PS, colour")
for car in owned_cars:
value = car.criteria
print(value, car)
AttributeError: 'cars' object has no attribute 'criteria'
使用时:
value = car.year
代码运行良好。我怎么知道 python,它应该将 criteria 解释为变量并使用它的内容,而不是它的名称?
这与 car
是数据类没有任何关系。 Python 属性就是这样工作的。如果要在字符串中按名称查找属性,请使用 getattr:
value = getattr(car, criteria)