【问题标题】:PyCharm template for python class __init__ functionpython类__init__函数的PyCharm模板
【发布时间】:2018-02-06 01:19:40
【问题描述】:

我有一个带有几个初始化变量的 python 类:

class Foo(object):
    def __init__(self, d1, d2):
        self.d1 = d1
        self.d2 = d2

有没有办法在 PyCharm 中自动创建这段代码,所以我不必显式输入:

self.dn = dn

这种模式在我的代码中经常出现。有没有更好的(Pythonic)方法来初始化类?

我已经看过这篇文章 (What is the best way to do automatic attribute assignment in Python, and is it a good idea?),但我不想使用装饰器,因为它会降低代码的可读性。

【问题讨论】:

    标签: python class attributes pycharm


    【解决方案1】:

    您可以先自定义Live Template。我不确定您是否可以通过这种方式自动生成可变数量的参数,但是对于两个构造函数参数,实时模板可能如下所示:

    class $class_name$:
        def __init__(self, $arg1$, $arg2$):
            self.$arg1$ = $arg1$
            self.$arg2$ = $arg2$
    $END$
    

    这就是我在 PyCharm 中的设置方式:


    或者,您可以更改设置实例属性的方式并将其概括为 N 个参数,请参阅:

    【讨论】:

      【解决方案2】:

      我知道了解决这个问题的另一种方法。

      • 将光标移至参数
      • 按 alt + 回车
      • 选择将字段“[arg]”添加到单个 arg 的类 - 或 -
      • 按右箭头键打开子菜单
      • 选择修复所有“未使用的本地”问题以添加所有参数

      【讨论】:

      • 非常方便,谢谢。在 2020.2 版本中,“全部修复”选项已消失。谁知道怎么加回来?
      • 看起来他们可能已经删除了它。不知道为什么。我希望这不是故意的。
      【解决方案3】:

      部分回答我自己的问题:

      非常方便,谢谢。在 2020.2 版本中,“全部修复”选项已消失。 谁知道怎么加回来?

      我还没有找到一种方法来添加缺少的选项,但是可以完成相同的解决方法,将所有缺少的字段添加到类中。

      答案来自这篇帖子:https://stackoverflow.com/a/62060345/1067293

      • 将鼠标光标放在未使用的参数上,然后按 Alt+Enter。
      • 然后点击右箭头并选择“在...上运行检查”

      • 在新的浮动窗口中选择文件范围。

      • 检查面板将出现在底部。
      • 在左侧选择文件。
      • 然后在右侧,单击“将字段添加到类”按钮。

      这有点太复杂了,但是当你有多个参数时仍然会派上用场。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-23
        • 2012-01-28
        • 1970-01-01
        相关资源
        最近更新 更多