pycharm中的功能,为每个属性(字段)生成自动设置器和getter函数并生成自动承包商

问题描述 投票:1回答:1

我正在寻找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
1个回答
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作为属性getter / setters /和deleters,那么就有一种简单的方法。

prop + TAB

将为您提供一个可以输入名称的属性获取器

道具+ TAB

将为您提供一个属性设置器和getter,您可以键入该名称

道具+ TAB

将为您提供一个属性设置器/获取器和删除器,您可以键入该名称

希望这可以帮助。

© www.soinside.com 2019 - 2024. All rights reserved.