python关键字参数完成(带提示?)

时间:2017-09-21 19:16:51

标签: python python-3.x jedi-vim

使用**kwargs样式函数输入时,有没有办法允许关键字参数建议?我能想到的最接近的是类型建议,例如:

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

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

这是IDE代码提示的目的或用例 - 例如扩展Jedi的功能。 是否已存在任何类似的功能?

1 个答案:

答案 0 :(得分:0)

PEP-484 on arbitrary argument lists and default argument values声明:

  

任意参数列表也可以是类型注释,因此定义:

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遵循指南,则应该指定它。