Распечатать 2d список из класса в Python? - PullRequest
0 голосов
/ 16 апреля 2020
class Mobile:
    def __init__(self, model, type, year):
        self.model = model
        self.type = type
        self.year = year

mobilePhones = [
    ["Samsung", "Galaxy S8", "2000"],
    ["Samsung", "Galaxy S9", "2001"],
    ["Samsung", "Galaxy S10", "2002"],
    ["Apple", "iPhone 8", "2005"],
    ["Apple", "iPhone 10", "2006"],
    ["Apple", "iPhone 11", "2007"],
]

phones = [
    Mobile(mobilePhones[0][0],mobilePhones[0][1],mobilePhones[0][2]),
    Mobile(mobilePhones[1][0], mobilePhones[1][1], mobilePhones[1][2]),
    Mobile(mobilePhones[2][0], mobilePhones[2][1], mobilePhones[2][2]),
    Mobile(mobilePhones[3][0], mobilePhones[3][1], mobilePhones[3][2]),
    Mobile(mobilePhones[4][0], mobilePhones[4][1], mobilePhones[4][2]),
    Mobile(mobilePhones[5][0], mobilePhones[5][1], mobilePhones[5][2]),
]

print(phones.model)

Мне просто интересно, почему этот лог c не работает? Я пытаюсь добавить все данные из 2dlist в класс, чтобы я мог вызывать все модели, типы или год.

print(mobilePhones[0][1]) работает, но не тогда, когда я пытаюсь вызвать его из класса , Нравится:

print(phones.model) or print(phones.year).

Ответы [ 2 ]

0 голосов
/ 16 апреля 2020

Вы не пытаетесь получить к нему доступ из класса с помощью phones.model. Вы пытаетесь получить к нему доступ из списка. Сначала вам нужно выбрать индекс, то есть phones[0].model. Или, если вы хотите напечатать модель всех из них,

for phone in phones:
    print(phone.model)
0 голосов
/ 16 апреля 2020

Потому что phones является list объектом. Вам нужно получить доступ к его упорядоченному содержимому / объектам через индексацию / циклы. Затем для этого содержимого / объекта вы можете вызвать вызываемый объект.

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