Python 如何忽略类型检查并遵守规则<;80查尔

Python 如何忽略类型检查并遵守规则<;80查尔,python,pep8,namedtuple,mypy,Python,Pep8,Namedtuple,Mypy,我有一种数据类型,它只对相关数据进行分组。它应该是一个类似结构的东西,所以我选择了名为tuple的 ConfigOption = namedtuple('ConfigOption', 'one two animal vehicle fairytale') 另一方面,namedtuple没有默认值,因此我在中提出了一个hack 显然,这会导致类型检查失败:error:“Callable[[type[NT],Any,Any,Any,Any,Any,Any,Any],NT]”没有属性“\uu默认值”

我有一种数据类型,它只对相关数据进行分组。它应该是一个类似结构的东西,所以我选择了名为tuple的

ConfigOption = namedtuple('ConfigOption', 'one two animal vehicle fairytale')
另一方面,
namedtuple
没有默认值,因此我在中提出了一个hack

显然,这会导致类型检查失败:
error:“Callable[[type[NT],Any,Any,Any,Any,Any,Any,Any],NT]”没有属性“\uu默认值”

因为我很清楚这是一个黑客行为,所以我告诉类型检查器使用内联注释
#type:disable

ConfigOption.__new__.__defaults__ = (1, 2, "White Horse", "Pumpkin", "Cinderella")  # type: disable
此时。。。队伍太长了。我不知道如何打断这一行,使其语法正确,同时使类型检查器跳过它:

# the ignore is on the wrong line
ConfigOption.__new__.__defaults__ = \
    (1, 2, "White Horse", "Pumpkin", "Cinderella")  # type: ignore

# unexpected indentation
ConfigOption.__new__.__defaults__ =  # type: ignore
    (1, 2, "White Horse", "Pumpkin", "Cinderella")
那么,有没有办法从类型检查中排除一行,或者格式化这一长行,从而跳过类型检查,并且行长度符合pep-8标准?

有什么问题:

option_defaults = (1, 2, "White Horse", "Pumpkin", "Cinderella")
ConfigOption.__new__.__defaults__ = option_defaults  # type: ignore

Enum似乎遵循您需要的约束,并且非常简洁

您可以使用,它本身表示
语义类似于namedtuple

>>> from enum import Enum
>>> Enum('ConfigOption', 'one two animal vehicle fairytale')
<enum 'ConfigOption'>
>>> ConfigOption = Enum('ConfigOption', 'one two animal vehicle fairytale')
>>> [c for c in ConfigOption]
[<ConfigOption.one: 1>, <ConfigOption.two: 2>, <ConfigOption.animal: 3>, <ConfigOption.vehicle: 4>, <ConfigOption.fairytale: 5>]
>>从枚举导入枚举
>>>枚举('ConfigOption'、'one-two animal vehicle fairytale')
>>>ConfigOption=Enum('ConfigOption','一两动物车童话')
>>>[ConfigOption中c代表c]
[, , ]

Python>=3.7默认使用namedtuple。除了pep-8告诉我使用选项_默认值外,什么都没有。谢谢
>>> from enum import Enum
>>> Enum('ConfigOption', 'one two animal vehicle fairytale')
<enum 'ConfigOption'>
>>> ConfigOption = Enum('ConfigOption', 'one two animal vehicle fairytale')
>>> [c for c in ConfigOption]
[<ConfigOption.one: 1>, <ConfigOption.two: 2>, <ConfigOption.animal: 3>, <ConfigOption.vehicle: 4>, <ConfigOption.fairytale: 5>]