Использование декоратора свойств Python для атрибутов, не входящих в класс.Python

Программы на Python
Anonymous
Использование декоратора свойств Python для атрибутов, не входящих в класс.

Сообщение Anonymous »

Простой вопрос, который меня раздражает, когда я его вижу:
Правильно или питонично использовать декоратор свойства вне контекста получения/установки, где вы не возвращаете атрибут защищенного класса. Например:

Код: Выделить всё

class ExampleWithUnnecessaryProperty:

def __init__(self, a: str):
self._a = a  # protected attribute

# This feels wrong to me - could be class attr, global const
@property
def arbitrary_attr(self) -> int:
return 5

# This also feels wrong to me - could be helper func
@property
def arbitrary_method(self) -> str:
return 5 * self.a

# use as a getter of protected attrs
@property
def a(self) -> str:
return self._a

# setter dependant on getter - also makes perfect sense to me
@a.setter
def a.setter(self, value: str) -> None:
self._a = value
Есть мысли или ссылки на соответствующую документацию?
Это лучшее, что я могу найти: https://kb.novaordis.com/index.php/Pyth ... Properties#:~: text=to%20Use%20Properties.-,Когда%20to%20Use%20Attributes%20and%20Когда%20to%20Use%20Properties,%20полученный%2C%20set%20или%20удаляется.


Подробнее здесь: https://stackoverflow.com/questions/790 ... attributes

Вернуться в «Python»