2024-04-23 18:04:36 发布
网友
没有必要。获得者和设定者的重点是
第一种方法不能在Python中实现,第二种方法可以不在任何地方使用getter和setter。
如果你有
class Person(object): def ___init__(self, full_name): self.full_name = full_name
决定用name和surname代替,然后可以添加
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。
没有办法这么做。您可以提取代码的某些部分,但不能让pycharm为您生成getter和setter。也不需要,因为所有变量都是公共的,并且_var值(即使被视为私有变量)也可以更改。
_var
编辑(有问题的更改):
如果您想在生成getter和setter时编写更少的代码,那么只需使用PyCharm中的props或propsd片段。
props
propsd
仅仅因为Paython不强制私人成员,并不意味着你必须没有它。
PyCharm不提供为所有私人成员创建属性的菜单,但它有一个实时模板:
在类中(缩进必须正确)键入prop并按enter键。将显示只读属性的存根。
我采用了我的live模板来轻松生成getter类属性: 打开设置(Ctrl+Alt+S)->;编辑器->;活动模板->;Python->;道具
@property def $NAME$(self): return self.__$NAME$
读写访问的live模板props也一样:
@property def $NAME$(self) -> $TYPE$: return self.__$NAME$ @$NAME$.setter def $NAME$(self, $NAME$: $TYPE$): self.__$NAME$ = $NAME$
没有必要。获得者和设定者的重点是
第一种方法不能在Python中实现,第二种方法可以不在任何地方使用getter和setter。
如果你有
决定用
name
和surname
代替,然后可以添加不破坏API。
没有办法这么做。您可以提取代码的某些部分,但不能让pycharm为您生成getter和setter。也不需要,因为所有变量都是公共的,并且
_var
值(即使被视为私有变量)也可以更改。编辑(有问题的更改):
如果您想在生成getter和setter时编写更少的代码,那么只需使用PyCharm中的
props
或propsd
片段。仅仅因为Paython不强制私人成员,并不意味着你必须没有它。
PyCharm不提供为所有私人成员创建属性的菜单,但它有一个实时模板:
在类中(缩进必须正确)键入prop并按enter键。将显示只读属性的存根。
我采用了我的live模板来轻松生成getter类属性: 打开设置(Ctrl+Alt+S)->;编辑器->;活动模板->;Python->;道具
读写访问的live模板
props
也一样:相关问题 更多 >
编程相关推荐