Pycharm (@property) и (@x.setter) автогенерация
Интересно, есть ли способ использования Pycharm для автоматического генерации getter (@property) или setter для всех моих переменных в классе.
Если есть способ, может кто-нибудь указать на это?
спасибо! На самом деле я хотел автоматически генерировать (@property) и (@x.setter).
Ответы
Ответ 1
Нет способа сделать это. Вы можете извлекать определенные части кода, но вы не можете заставить pycharm генерировать getters и сеттеры для вас. Также нет необходимости, поскольку все переменные являются общедоступными, а значения _var
, хотя и рассматриваются как частные переменные, также могут быть изменены.
ИЗМЕНИТЬ (Изменить вопрос):
Если вы хотите писать меньше кода при создании геттеров и сеттеров, просто используйте фрагмент props
или propsd
в PyCharm.
Ответ 2
Нет необходимости в этом. Пункт геттеров и сеттеров
- ограничение доступа (например, создание sth только для чтения)
- maintaing API (чтобы вы могли изменять базовые поля или добавлять некоторую обработку).
Первый не может быть достигнут в Python, а второй может быть без использования геттеров и сеттеров везде.
Если у вас
class Person(object):
def ___init__(self, full_name):
self.full_name = full_name
и решил вместо name
и surname
добавить
@property
def full_name(self):
return self.name + " " + self.surname
@full_name.setter
def full_name(self, value):
self.name, self.surname = value.split()
не нарушая API.