Как обращаться к методу вшитого класса как к свойству?
Я хочу обращаться к методу класса как к свойству, но как поступить, если я не могу сделать его property напрямую? Скажем есть метод, который концептуально и по названию походит на свойство, но автор класса оставил его методом. Можно ли поступить так и будет ли такой подход нарушать какие-либо принципы?
SomeClass.some_method = property(SomeClass.some_method)
Ответы (1 шт):
Автор решения: Andrew Holovko
→ Ссылка
Вы можете использовать декоратор @property.
Класс и его метод будут выглядеть следующим образом:
>>> class SomeClass:
>>> def _foo(self):
>>> return 'some string'
>>> @property
>>> def foo(self):
>>> return self._foo()
>>> a = SomeClass()
>>> print(a.foo)
some string
А к самому методу можно будет обращаться как к параметру a.foo.