Работа с кортежами в классах 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]) # ну и для получения элемента кортежа по индексу используется стандартный подход