使用**kwargs
样式函数输入时,有没有办法允许关键字参数建议?我能想到的最接近的是类型建议,例如:
class Classy(object):
var1 = str()
var2 = list()
var3 = list()
def myfunc(param1, **kwargs: **Classy):
# actions
# ...
这是IDE代码提示的目的或用例 - 例如扩展Jedi的功能。 是否已存在任何类似的功能?
答案 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遵循指南,则应该指定它。