Как обращаться к методу вшитого класса как к свойству?

Я хочу обращаться к методу класса как к свойству, но как поступить, если я не могу сделать его 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.

→ Ссылка