我在student.py文件中定义了类别(例如,针对不同类型的汽车):
class car:
def __init__(self, name, engine, no_of_seats, power_source):
self.name = name
self.engine = engine
self.no_of_seats = no_of_seats
self.power_source = power_source
然后我将其导入到main_project.py
from student import car
我创建了3种不同的汽车类型,并提供了与课程相关的数据。现在我想打印例如所有三种汽车类型一次只能使用power_source。我的想法是在列表中列出列表,但我没有用。这是我的代码:
list = [car("Audi", 2.0, 4, "gasoline")], [car("Porsche", 3.0, 7, "gasoline")], [car("Lexus", 2.4, 5, "hybrid")]
现在,我无法访问列表中的特定项目。我可以访问整个列表,但它会显示以下消息:
[]
我通过使用:
print(list[0])
我的问题是:-我尝试实现此目标的方法是否正确?-是否可以在变量“列表”中包含不同车型的其他变量?
谢谢
您的语法中有一些错误会引起问题。首先,list是python中的受保护名称,因此禁止将“ list”用作列表的名称。在末尾添加下划线为pythonic:
list_ = []
接下来,当您应该将每个元素都放在一对方括号中时,请使用方括号将列表中的每个元素都关闭。
# Don't do this
list_ = [elem_1], [elem_2], [elem_3],...
# Do this
list_ = [elem_1, elem_2, elem_3]
然后,最后,要回答您的问题,您正在用汽车物品填充列表。但是您想用汽车对象的power_source属性填充它。因此,请使用点语法从汽车对象中调用属性
list_ = [car("Audi", 2.0, 4, "gasoline").power_source, car("Porsche", 3.0, 7, "gasoline").power_source, car("Lexus", 2.4, 5, "hybrid").power_source]