Python импортированный класс и список в списке - PullRequest
1 голос
/ 26 марта 2020

Я определил класс (скажем, для разных типов автомобилей) в файле 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

I Создал, скажем, 3 разных типа автомобилей с данными, относящимися к классу. Теперь я хотел бы напечатать, например, только power_source для всех 3 типов автомобилей одновременно. Моя идея состояла в том, чтобы сделать список в списке, но я не работаю. Вот фрагмент моего кода:

list = [car("Audi", 2.0, 4, "gasoline")], [car("Porsche", 3.0, 7, "gasoline")], [car("Lexus", 2.4, 5, "hybrid")]

Теперь я не могу получить доступ к указанному элементу c в списке. Я могу получить доступ ко всему списку, но он печатает следующее сообщение:

Я получаю это с помощью:

print(list[0])

Мои вопросы: - это способ, которым я пытаюсь чтобы добиться этого правильно? - возможно ли включить в переменную «список» другие переменные для разных типов автомобилей?

Спасибо

1 Ответ

2 голосов
/ 26 марта 2020

В вашем синтаксисе есть несколько ошибок, которые могут вызвать проблемы. Во-первых, lit считает плохой практикой использование «списка» в качестве имени для списка, поскольку он переопределяет встроенный список имен. Добавьте в конце подчеркивание pythoni c:

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]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...