Правильно или питонично использовать декоратор свойства вне контекста получения/установки, где вы не возвращаете атрибут защищенного класса. Например:
Код: Выделить всё
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