我正在寻找pycharm中的功能,该功能为每个属性(字段)生成自动setter和getter函数并生成自动承包商。
例如,
class A:
def __init__(self, a, b, c, d):
self._a = a
self._b = b
self._c = c
self._d = d
def set(self, a):
self._a = a
def get(self, a):
return a
答案 0 :(得分:1)
这是一个古老的问题,但是,我遇到了这个问题,希望对以后的访问者有所帮助。
PyCharm具有可为此类事情配置的实时模板。但是...
在PyCharm中这可能不存在,因为不认为getter和setter是Pythonic的,也不是Python处理类的方式。对于那些来自C ++,Java或PHP等语言的人来说,这是一个普遍的误解。
Python的实现方法是通过Properties。 See this SO question。
class A:
def __init__(a):
self._a = a
@property
def a(self):
return self._a
@a.setter
def a(self, val):
self._a = val
@a.deleter
def a(self):
self._a = None
要访问:
obj = A(12)
obj.a # 12
obj.a = 13
obj.a # 13
del obj.a
obj.a # None
如果要将PyCharm用于属性获取器/设置器/删除器,则有一种简单的方法。
prop + TAB
将为您提供属性获取器,您可以在其中输入名称
道具+ TAB
将为您提供属性设置器和获取器,您可以在其中键入名称
propsd + TAB
将为您提供一个属性设置器/获取器和删除器,您可以在其中键入名称
希望这会有所帮助。