类“ Enum”没有“ POWER”成员pylint(无成员)

我正在尝试使用此函数自动枚举多个常量,并在最后一行给我一个错误:

  

“ Enum”类没有“ POWER”成员pylint(无成员)

代码是:

from enum import Enum 

def enum(*sequential,**named):
    enums = dict(zip(sequential,range(len(sequential))),**named)
    return type('Enum',(),enums)

meas = enum("HARMONIC","POWER","VRMS")

print (meas.POWER) #i expected: >1 (type int)

我不理解这个问题。我想要一种解决方案或其他形式。谢谢。

uyghun 回答:类“ Enum”没有“ POWER”成员pylint(无成员)

此代码不会产生错误,您的短毛猫抱怨了,您不能期望自己的短毛猫理解动态创建的类。不用理会你的短毛猫。

因此,为了方便起见,Enum类已经提供了您尝试重新创建的内容,并提供了类似于collections.namedtuple的API:

>>> from enum import Enum
>>> Meas = Enum("Meas","HARMONIC POWER VRMS")
>>> Meas.POWER
<Meas.POWER: 2>

我认为Enum既是基本类又是类工厂,这很不寻常。

请注意,如果您只是增加使用范围,则您自己的解决方案将给您大于1的数字:

range(1,len(sequential) + 1))
本文链接:https://www.f2er.com/2875964.html

大家都在问