使用枚举时禁用pylint警告E1101

2024-06-01 10:23:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我最近看到了anthonyfox的this article,它展示了如何使用枚举在django CharFields中创建选择集,我认为这非常简洁。在

基本上,您可以创建Enum的子类:

from enum import Enum

class ChoiceEnum(Enum):
    @classmethod
    def choices(cls):
        return tuple((x.name, x.value) for x in cls)

然后可以在您的模型中使用,如下所示:

^{pr2}$

但是,每当您试图访问枚举值(Colors.RED.value)时,pylint会抛出一个警告

E1101:Instance of 'str' has no 'value' member

对于每个ChoiceEnum实例,是否有方法避免/禁用此警告?在

This answer只作用于ChoiceEnum的子类,而不是{}本身。在


Tags: djangofromimport警告valuearticleenumthis
1条回答
网友
1楼 · 发布于 2024-06-01 10:23:04

由于issue仍处于打开状态,我们可以使用以下解决方法

from .utils import ChoiceEnum

class Car(models.Model):
    class Colors(ChoiceEnum, Enum):
        RED = 'red'
        WHITE = 'white'
        BLUE = 'blue'

    color = models.CharField(max_length=5, choices=Colors.choices(), default=Colors.RED.value)

现在不会产生pylint错误

相关问题 更多 >