Pycharm **kwargs 自动完成

Posted

技术标签:

【中文标题】Pycharm **kwargs 自动完成【英文标题】:Pycharm **kwargs auto-complete 【发布时间】:2018-08-27 21:07:04 【问题描述】:

您好,我正在尝试使 pycharm 的自动完成功能与 **kwargs 一起使用。为此,我使用 epytext 语法编写了一个文档字符串,该语法可以使用 @keyword p: 声明关键字参数,但它不起作用。

有人知道解决方法吗?

附:我在 PyCharm 设置中更改了文档字符串格式。

【问题讨论】:

你在 init 方法中没有正文,至少使用 pass 给你。我没有添加它,因为问题不在python逻辑中。 在 PyCharm 错误跟踪器中新创建的票证:youtrack.jetbrains.com/issue/PY-29043 我发现了另一个关于这个问题的代码 youtrack.jetbrains.com/issue/PY-11425 但它是在 2013 年创建的 :) 【参考方案1】:

如果关键字参数是提前知道的(并且您想要一个文档字符串来解释它们),那么它们应该在函数参数中明确列出。然后可以用普通的@param & @type 语法来描述每一个。 @keywords 用于描述开发时未知的其余关键字参数。

例如:

class SomeClass:
  def __init__(self, some_kw=None, some_kw_1=None, **other_kwargs):
    """
    @param some_kw: A known-at-dev-time keyword argument
    @type some_kw: str
    @param some_kw_1: Another known-at-dev-time keyword argument
    @type some_kw_1: str
    @keyword other_kwargs: More kwargs that will be set on the instance
    """
    self.some_kw = some_kw
    self.some_kw_1 = some_kw_1
    for k, v in other_kwargs:
        setattr(self, k, v)

an_instance = SomeClass(some_kw="hello", other_kw="world")
print an_instance.some_kw
print an_instance.some_kw_1
print an_instance.other_kw

输出

> "hello"
> None
> "world"

【讨论】:

关键是不要让它们在那里,而是让 PyC​​harm 向你推荐它们。

以上是关于Pycharm **kwargs 自动完成的主要内容,如果未能解决你的问题,请参考以下文章

Pycharm(Python IDE)不会自动完成 Django 模块

PyCharm 自动完成功能不适用于 pygame

PyCharm 中用于 Python 编译扩展的自动完成功能

PyCharm Kite AI 自动完成功能不起作用

如何为导入的库启用 PyCharm 自动完成功能 (Discord.py)

pycharm 可以建议或自动完成或插入类型提示吗?