我正在寻找pycharm中的功能,为每个属性(字段)生成自动设置器和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
这是一个古老的问题但是,我遇到了它,并希望帮助任何未来的访客。
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作为属性getter / setters /和deleters,那么就有一种简单的方法。
prop + TAB
将为您提供一个可以输入名称的属性获取器
道具+ TAB
将为您提供一个属性设置器和getter,您可以键入该名称
道具+ TAB
将为您提供一个属性设置器/获取器和删除器,您可以键入该名称
希望这可以帮助。