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"
【讨论】:
关键是不要让它们在那里,而是让 PyCharm 向你推荐它们。以上是关于Pycharm **kwargs 自动完成的主要内容,如果未能解决你的问题,请参考以下文章
Pycharm(Python IDE)不会自动完成 Django 模块
PyCharm 中用于 Python 编译扩展的自动完成功能