作为一个最小的例子,我有一个类示例,其作用类似于一系列其他类的抽象容量.
class Example(object): def __init__(self,**kwargs): for key,value in kwargs.items(): setattr(self,key,value) class Test(Example): def __init__(self,foo='bar'): super(Test,self).__init__(foo=foo)
在实际案例中,Example做了更多的事情.
有没有办法在测试时通知PyCharm Test会有一个字段Test.foo甚至更好,让它知道foo应该是一个字符串?
需要明确的是,考虑将示例中的字段设置委托给Test不可能.
我最接近的是Epydoc的@ivar,但是我无法让它发挥作用
解决方法
正如其他人所说,你不能.但是,您可以告诉PyCharm使用@DynamicAttrs接受缺少的属性:
class Example(object): """ @DynamicAttrs """ def __init__(self,**kwargs): for key,value in kwargs.items(): setattr(self,value)
更新:
如果Python3.5是一个选项,请参阅this question关于使用动态属性的类型提示.