Работа с кортежами в классах Python вывести по индексу

Помогите понять как при создании экземпляра класса, вывести данные из кортежа по индексу?

Вот код:

class Year():
    ### кортеж временами года
    seasons = ("Зима", "Весна", "Лето", "Осень")
    
    ### Кортеж с месяцами
    months = ("Январь", "Февраль", "Март", "Апрель",
             "Май", "Июнь", "Июль", "Август", "Сентябрь",
             "Октябрь", "Ноябрь", "Декабрь")
    
    ### Кортеж с днями
    days = ("Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота", "Воскресенье")

    """ Инициализируем методы """
    def __init__(self, seasons, months, days):
        self.seasons = seasons
        self.months = months
        self.days = days

    def printYear(self):
        print("Время года: " + self.seasons + " Месяц: " + self.months + " День недели: " + self.days)

""" Попытка вывести по индексу """
Year1 = Year(seasons[0], months[0], days[0]) ### Ошибка NameError: name 'seasons' is not defined

print(printYear())

Ответы (1 шт):

Автор решения: dresqd

Тут происходит следующее: Вы инициализируете экземпляр класса Year с именем Year1, передавая для инициализации элементы кортежей seasons, months и days.

Таких кортежей не существует.

Кортежи с такими именами являются переменными класса Year.

Для получения значения переменной экземпляра класса можно сделать так:

Year1 = Year  # объявляем экземпляр класса
print(Year1.seasons, Year1.months, Year1.days)  # выводим значения переменных экземпляра класса
print(Year1.seasons[0], Year1.months[0], Year1.days[0])  # ну и для получения элемента кортежа по индексу используется стандартный подход
→ Ссылка