我有以下代码定义了一个枚举,并使用 enum.auto() 为条目提供基于 1 的生成值:
from enum import Enum, auto
class Colors(Enum):
RED = auto()
BLUE = auto()
YELLOW = auto()
def main():
print(Colors.RED.value)
print(Colors.BLUE.value)
print(Colors.YELLOW.value)
if __name__ == '__main__':
main()
输出:
1
2
3
过去代码运行良好,没有任何警告,但今天更新 PyCharm 后,我现在从 auto() 收到以下警告:
Parameter(s) unfilled
Possible callees:
EnumMeta.__call__(cls: Type[_T], value, names: None = ...)
EnumMeta.__call__(cls: EnumMeta, value: str, names: Union[str, Iterable[str], Iterable[Iterable[str]], Mapping[str, Any]], *, module: Optional[str] = ..., qualname: Optional[str] = ..., type: Optional[type] = ..., start: int = ..., boundary: Optional[FlagBoundary] = ...)
EnumMeta.__call__(cls: Type[_T], value, names: None = ...)
EnumMeta.__call__(cls: EnumMeta, value: str, names: Union[str, Iterable[str], Iterable[Iterable[str]], Mapping[str, Any]], *, module: Optional[str] = ..., qualname: Optional[str] = ..., type: Optional[type] = ..., start: int = ...)
我检查了但找不到任何相关内容,因为所有示例仍然使用 auto() 没有任何参数。
我认为新警告是因为 PyCharm 正在使用更新的 Python linting 规则。
如何解决此警告?
更新 1:
好像 PyCharm 检测到 enum.auto() 为 enum.auto(IntFlag),所以没有填充警告参数:
我也会将此问题报告给 PyCharm 开发人员。也许这是一个错误。
更新 2:
没关系,大家。我刚刚发现这是一个错误,并在一个月前被报告在这里。
© 版权声明
本站下载的源码均来自公开网络收集转发二次开发而来,
若侵犯了您的合法权益,请来信通知我们1413333033@qq.com,
我们会及时删除,给您带来的不便,我们深表歉意。
下载用户仅供学习交流,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担,访问及下载者下载默认同意本站声明的免责申明,请合理使用切勿商用。
THE END
暂无评论内容