Python导入的类和列表中的列表

问题描述 投票:1回答:1

我在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])

我的问题是:-我尝试实现此目标的方法是否正确?-是否可以在变量“列表”中包含不同车型的其他变量?

谢谢

python list
1个回答
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]

© www.soinside.com 2019 - 2024. All rights reserved.