gpt4 book ai didi

python - 使用枚举时禁用 pylint 警告 E1101

转载 作者:行者123 更新时间:2023-12-03 03:20:35 25 4
gpt4 key购买 nike

我最近遇到了this article作者:Anthony Fox,展示了如何使用枚举在 django CharFields 中创建选择集,我认为这非常简洁。

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

from enum import Enum

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

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

from .utils import ChoiceEnum

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

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

red_cars = Car.objects.filter(color=Car.Colors.RED.value)

但是,每当您尝试访问枚举值 (Colors.RED.value) 时,pylint 都会引发警告

E1101:“str”的实例没有“value”成员

有没有办法避免/禁用每个 ChoiceEnum 实例的此警告?

This answer仅适用于 ChoiceEnum 的子类,不适用于 ChoiceEnum 本身。

最佳答案

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 错误

关于python - 使用枚举时禁用 pylint 警告 E1101,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51428697/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com