【发布时间】:2019-08-21 07:17:21
【问题描述】:
在使用枚举类中的成员“value”和“equals”时,我从 pylint 收到以下错误: “代码”:“无成员” "message": "'tuple' 的实例没有 'value' 成员" 版本: 皮林特 2.3.1 小行星2.2.5 Python 3.6.3
代码按预期执行。我只是想知道我是否做错了什么(我不是专业的 python 程序员),或者是否有更“pythonic”的方式来实现相同的结果:
from enum import Enum
class DefaultEnum(Enum):
def __new__(self,val,_name,_type):
obj = object.__new__(self)
obj._value_ = val
obj._publicName = _name
obj._type = _type
return obj
def __str__(self):
return self._publicName
def equals(self,_string):
return _string == str(self)
class GlobalEnum(DefaultEnum):
TRUE = 0,'True',str()
FALSE = 1,'False',str()
GlobalEnum.TRUE.value
>> 0
GlobalEnum.TRUE.equals('True')
>> True
repr(GlobalEnum.TRUE)
>> <GlobalEnum.TRUE: 0>
我目前正在使用“# pylint: disable=no-member”注释来禁用警告,但我不希望这样做......将课程列入白名单也是如此,因为我仍然想要 pylint报告其他发现。
【问题讨论】:
-
你使用
__new__而不是__init__有什么原因吗?
标签: python python-3.x enums pylint