Как "достучаться" до аттрибута экземпляра класса через @classmethod?
По условию задачи, требуется написать класс, конструктор которого бы принимал дату строкой в формате 'день-месяц-год', а затем именно через @classmethod метод требуется извлечь дату и преобразовать в число.
Я столкнулся с проблемой, на мой взгляд очевидной, что через @classmethod я не могу "достучаться" напрямик до атрибута экземпляра класса. Через геттер тоже не получилось. Получилось только через @property, но меня постигла неудача, т.к. мне необходимо делать определённые преобразования с тем, что возвращает данный метод, а пайтон ругается на то, что у объекта класса property нет возможности сделать эти преобразования.
Заранее благодарю за помощь!
class Data:
def __init__(self, data: str):
self._data = data
@classmethod
def data_to_int(cls):
return cls.data.split('-')
@property
def data(self):
return self._data
data = Data('18-10-2004')
print(Data.data_to_int()) #AttributeError: 'property' object has no attribute 'split'
print(data.data_to_int())
Ответы (1 шт):
Как вариант:
class MyDate:
def __init__(self, string):
self.date = string
@classmethod
def date_to_int(cls, obj):
return obj.date.split('-')
a = MyDate('12-21-2001')
print(MyDate.date_to_int(a))