如何使 VS Code 自动完成 Python Class 属性初始化

How to make VS Code Autocomplete Python Class Attribute Initialization

我在 Python 个项目中使用 VS Code。

当我写的时候:

class User:
    def __init__(self, name, age, group=None):

我希望 VS Code 自动完成以下内容:

class User:
    def __init__(self, name, age, group=None):
        self.name = name
        self.age = age
        self.group = group

这可以用 VS Code 实现吗?我见过其他一些编辑这样做。这个有扩展吗?非常感谢!

我制作了一个 Python 版本,带有基于

的属性初始值设定项
  "Class Initializer": {
    "prefix": "cinit",
    "body": [
      "def __init__(self, ):",
      "${1/([^,=]+)(?:=[^,]+)?(,\s*|)/\tself. = ${2:+\n\t}/g}"
    ],
    "description": "Class __init__"
  }

我使用空格进行缩进,在另一个片段中 \t 被转换为空格。

如果制表符未正确展开,请将 \t 替换为适当数量的空格。 (有2个\t).

输入class name:回车你缩进1,然后输入前缀cinit.

我试图做同样的事情,找到了你的答案,实现了它,因为我正在学习正则表达式,尽管尝试概括属性类型会很好。提出以下内容:

"Class Defininition": {
    "prefix": "clss",
    "body": [
        "class ${1:ClassName}${2/[(][)]//g}:",
        "\t'''\n\tClass : \n\t'''\n",
        "\tdef __init__(self, ${4/([^self \s]*|)//g}):",
        "\t\t${4/(^\w+|(?<=,\s)\w+)(.*?,\s|:.*|=.*|$)/self. = ${4:\n\t\t}/g}",
        "\t\t[=10=]"
    ],
    "description": "Initialize Class"
}

顺序是:

</code> - Class 名称(也填写默认文档字符串)</p> <p><code> - 继承(需要在括号中输入。这里我想将它们设置为默认值,如果为空则将其删除。我知道它仍然适用于空括号,但我做不到如果为空且未在 </code>)</p> 中输入,则删除 <p><code> - Class 描述

</code> - 属性声明,包括按照 <a href="https://docs.python.org/3/library/typing.html" rel="nofollow noreferrer">Support for type hints</a></p> 中的语法输入 <p>示例:</p> <pre><code>class ClassName: ''' Class ClassName: ''' def __init__(self, foo, bar: int, baz, default=10): self.foo = foo self.bar = bar self.baz = baz self.default = default