Pycharm (@属性) 和 (@x.setter) 自动生成
Pycharm (@property) and (@x.setter) autogeneration
我想知道是否有某种方法可以使用 Pycharm 为 [=21] 中的所有变量自动生成 getter(@属性) 或 setter =].
如果有方法,谁能指出来吗?
谢谢!其实我的意思是自动生成 (@属性) 和 (@x.setter).
没有办法这样做。您可以提取代码的某些部分,但不能让 pycharm 为您生成 getter 和 setter。也没有必要,因为所有变量都是 public,并且 _var
值,即使被视为私有变量也可以更改。
编辑(有问题的更改):
如果你想在制作 getter 和 setter 时写更少的代码,那么只需使用 props
或 PyCharm 中的 propsd
片段。
没有这个必要。 getters 和 setters 的点是
- 限制访问(比如将某事设为只读)
- 维护 API(以便您可以更改基础字段或添加一些处理)。
第一个无法在 Python 中实现,第二个可以不使用吸气剂和 setter 无处不在。
如果你有
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.
仅仅因为 Python 不强制执行私有成员并不意味着您必须没有它们。但请注意,getters 和 setter 是函数调用,比直接成员访问要慢得多。
PyCharm 不提供为所有私有成员创建属性的菜单,但它有一个实时模板:在你的 class(缩进必须正确)中键入 prop 并按进入。只读 属性 的存根将出现。
我采用了我的实时模板来轻松生成 getter,例如 属性:
打开设置 (Ctrl+Alt+S) -> 编辑器 -> 实时模板 -> Python -> prop
@property
def $NAME$(self):
return self.__$NAME$
实时模板相同props
读写访问:
@property
def $NAME$(self) -> $TYPE$:
return self.__$NAME$
@$NAME$.setter
def $NAME$(self, $NAME$: $TYPE$):
self.__$NAME$ = $NAME$
我想知道是否有某种方法可以使用 Pycharm 为 [=21] 中的所有变量自动生成 getter(@属性) 或 setter =].
如果有方法,谁能指出来吗?
谢谢!其实我的意思是自动生成 (@属性) 和 (@x.setter).
没有办法这样做。您可以提取代码的某些部分,但不能让 pycharm 为您生成 getter 和 setter。也没有必要,因为所有变量都是 public,并且 _var
值,即使被视为私有变量也可以更改。
编辑(有问题的更改):
如果你想在制作 getter 和 setter 时写更少的代码,那么只需使用 props
或 PyCharm 中的 propsd
片段。
没有这个必要。 getters 和 setters 的点是
- 限制访问(比如将某事设为只读)
- 维护 API(以便您可以更改基础字段或添加一些处理)。
第一个无法在 Python 中实现,第二个可以不使用吸气剂和 setter 无处不在。
如果你有
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.
仅仅因为 Python 不强制执行私有成员并不意味着您必须没有它们。但请注意,getters 和 setter 是函数调用,比直接成员访问要慢得多。
PyCharm 不提供为所有私有成员创建属性的菜单,但它有一个实时模板:在你的 class(缩进必须正确)中键入 prop 并按进入。只读 属性 的存根将出现。
我采用了我的实时模板来轻松生成 getter,例如 属性: 打开设置 (Ctrl+Alt+S) -> 编辑器 -> 实时模板 -> Python -> prop
@property
def $NAME$(self):
return self.__$NAME$
实时模板相同props
读写访问:
@property
def $NAME$(self) -> $TYPE$:
return self.__$NAME$
@$NAME$.setter
def $NAME$(self, $NAME$: $TYPE$):
self.__$NAME$ = $NAME$