1

**kwargs使用样式函数输入时,有什么方法可以允许关键字参数建议?我能想到的最接近的事情是以如下格式输入建议:

class Classy(object):
    var1    = str()
    var2    = list()
    var3    = list()

def myfunc(param1, **kwargs: **Classy):
    # actions
    # ...

这样做的目的或用例是 IDE 代码提示——例如扩展 Jedi 的功能。是否已经存在这样的功能?

4

1 回答 1

0

任意参数列表和默认参数值PEP-484指出:

任意参数列表也可以进行类型注释,以便定义:

def foo(*args: str, **kwds: int): ...

是可以接受的,这意味着,例如,以下所有都表示具有有效参数类型的函数调用:

foo('a', 'b', 'c')
foo(x=1, y=2)
foo('', z=0)

更正式地说,它意味着您指定一个此类参数的类型。因此,如果您希望的所有kwargs都是Classy对象,请使用: Classy. 喜欢:

def myfunc(param1, **kwargs: Classy):
    # actions
    pass

这是建议的方法。这当然并不意味着 IDE 支持这一点。但是,如果 IDE 遵循指南,那应该是指定它的方式。

于 2017-09-21T19:22:44.007 回答