Вы на самом деле не так уж и далеко, чтобы заставить это работать!
Проблема, с которой вы столкнулись сейчас, состоит в том, что существует конфликт между именем year
, являющимся атрибутом класса (эта строка: year = timelist[4]
), и именем метода (эта строка: def year(self):
.
Вы можете обновить свой код следующим образом:
import time
class curtime:
def __init__(self):
timeu = time.asctime(time.localtime(time.time()))
timelist = timeu.split()
self._day = timelist[0]
self._month = timelist[1]
self._date = timelist[2]
self._time = timelist[3]
self._year = timelist[4]
def year(self):
return [self._year]
t1 = curtime()
years = t1.year()
print(years)
И вы получите правильный вывод: ['2019']
Обратите внимание, что здесь я удалил все переменные класса и исправил реализацию __init__
, чтобы у каждого экземпляра было свое текущее время. Важным моментом является то, что я использую _year
в качестве имени атрибута для приватного значения, которое вы храните, и year
для функции, которую вы хотите использовать.