我在使用枚举类的成员“value”和“equals”时,pylint会提示以下错误:
“code”: “no-member”
“message”: “Instance of 'tuple' has no 'value' member”
版本信息如下:
pylint 2.3.1
astroid 2.2.5
Python 3.6.3
代码可以正常执行。我只是想知道是否有我做错的地方(我不是专业的Python程序员),或者是否有更“Pythonic”的方法来达到同样的效果。
我目前使用“#pylint:disable = no-member”注释来禁用警告,但我宁愿不这样做...同样适用于将类列入白名单,因为我仍然希望pylint报告其他发现。
代码可以正常执行。我只是想知道是否有我做错的地方(我不是专业的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__
的原因是什么? - dtrckd