Как мне просто скрыть некоторые свойства от конструктора класса данных, но при этом получить к ним доступ через методы?Python

Программы на Python
Anonymous
Как мне просто скрыть некоторые свойства от конструктора класса данных, но при этом получить к ним доступ через методы?

Сообщение Anonymous »

Я просто хочу запретить пользователям устанавливать некоторые свойства, но все варианты, которые я вижу, похоже, не работают.
Использование __post_init__ и init =False Я не могу получить доступ к этим свойствам и обновить их из методов, прикрепленных к классу.
Когда я определяю их с помощью @property вот так Я получаю AttributeError: свойство my_prop объекта MyClass не имеет установщика:

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

@property
def my_prop(self) -> str:
return self.my_prop

def my_method(self):
self.my_prop = "sdfsdfsd"
Нет ли простого способа просто «скрыть» свойства, чтобы пользователи не могли по ошибке установить их в конструкторе? У меня есть класс данных с несколькими свойствами, и только для одного мне нужно такое поведение.

Подробнее здесь: https://stackoverflow.com/questions/788 ... t-still-ac

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