如果我有一个python类,其静态方法定义如下:
@staticmethod
def create(Name, parent_property, Description='', Source='', TrueMessage='True', FalseMessage='False'):
"""Simple method for creating Connector.Tags.DiscreteTag items using passed in values."""
named_value_bag = NamedValueBag()
if Description:
named_value_bag.Add('Description', Description)
if Source:
named_value_bag.Add('Source', Source)
if TrueMessage:
named_value_bag.Add('TrueMessage', TrueMessage)
if FalseMessage:
named_value_bag.Add('FalseMessage', FalseMessage)
try:
return DiscreteTag(Item.CreateInstance(DiscreteTag.__item_type, Name, named_value_bag, parent_property))
except Exception, e:
raise e
Intellisense工作得很好,并向我展示了所有必需和关键字参数。
但是,如果我尝试使它更通用(我通过模板生成类,而不是参数,这实际上是一个类方法,据我所知),并定义这样的方法:
@classmethod
def create(cls, Name, parent_property, Description='', Source='', TrueMessage='True', FalseMessage='False'):
"""Simple method for creating Connector.Tags.DiscreteTag items using passed in values."""
named_value_bag = NamedValueBag()
if Description:
named_value_bag.Add('Description', Description)
if Source:
named_value_bag.Add('Source', Source)
if TrueMessage:
named_value_bag.Add('TrueMessage', TrueMessage)
if FalseMessage:
named_value_bag.Add('FalseMessage', FalseMessage)
try:
return cls(Item.CreateInstance(cls.__item_type, Name, named_value_bag, parent_property))
except Exception, e:
raise e
然后intellisense只显示MyClass.create(* args,** kwargs),我丢失了实际的参数名称。
这是VSCode的问题,还是我如何定义我的方法?我正在包装第三方API,我正在使用python 2.7,因为这最终会在IronPython上下文中执行。我只是想使用VSCode进行开发,并获得intellisense,语法高亮,pylint等。