首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MyPy给出了“不兼容的类型"auto";当使用auto()和从字符串继承的枚举时,应出现" str”“错误

问题描述: MyPy给出了“不兼容的类型"auto";当使用auto()和从字符串继承的枚举时,应出现" str”“错误。

回答: 这个错误是由于使用了auto()和从字符串继承的枚举时导致的类型不兼容。在Python中,枚举是一种特殊的数据类型,用于定义一组命名的常量。在枚举中,可以使用auto()来自动分配值给枚举成员,而从字符串继承的枚举则是指枚举成员的值是字符串。

然而,auto()和从字符串继承的枚举在类型上是不兼容的。auto()会自动分配一个整数值给枚举成员,而从字符串继承的枚举成员的值是字符串类型。因此,当使用auto()和从字符串继承的枚举时,就会出现类型不兼容的错误。

解决这个问题的方法是,要么使用auto(),要么使用从字符串继承的枚举,不能同时使用两者。如果需要使用自动分配值的功能,可以考虑使用auto(),如果需要使用字符串类型的值,可以考虑使用从字符串继承的枚举。

腾讯云相关产品推荐: 腾讯云提供了丰富的云计算产品和服务,以下是一些相关产品的介绍和链接地址:

  1. 云服务器(CVM):腾讯云的云服务器产品,提供弹性计算能力,适用于各种应用场景。详情请参考:云服务器产品介绍
  2. 云数据库 MySQL 版(CDB):腾讯云的云数据库产品,提供高可用、可扩展的 MySQL 数据库服务。详情请参考:云数据库 MySQL 版产品介绍
  3. 人工智能平台(AI Lab):腾讯云的人工智能平台,提供丰富的人工智能服务和工具,帮助开发者构建智能应用。详情请参考:人工智能平台产品介绍

请注意,以上推荐的产品仅为示例,腾讯云还提供了更多丰富的云计算产品和服务,具体可根据实际需求进行选择。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

SqlAlchemy 2.0 中文文档(三十一)

还包括访问 User.id User.name 类级属性,如上面的 select() 语句中所示,它们与 SQL 表达式行为兼容,这是 InstrumentedAttribute 属性描述符类派生...(50), nullable=False) other_name: Mapped[Optional[str]] = Column(String(50)) 类型是非可选,这意味着MyClass...它还包括访问 User.id User.name 类级属性,正如它们在上面的 select() 语句中那样,它们与 SQL 表达式行为兼容,这是 InstrumentedAttribute 属性描述符类派生...(50), nullable=False) other_name: Mapped[Optional[str]] = Column(String(50)) 类型是非可选,这意味着 MyClass...(50), nullable=False) other_name: Mapped[Optional[str]] = Column(String(50)) 类型为非可选,这意味着MyClass

38420

【笔记】《深入理解C++11》(上)

, POD 库编程: 内联命名空间, 继承构造, 右值引用 C++11标准设计准则: 在稳定性兼容性之间抉择: auto, using, nullptr 用库而非扩展语言语法来实现特性: std::..., 所以发生冲突时候应该显式声明构造函数来因此冲突函数 派生类是虚继承了基类, 不能使用继承构造函数 一旦使用继承构造函数(用using Base::Base;)暴露出来, 自身默认构造函数就和之前隐藏规则一样...POD需要满足以下条件: 平凡(Plain)限制: 与memset兼容默认构造析构函数 与memcpy兼容拷贝, 移动, 赋值, 移动赋值函数 包含虚函数虚基类 标准布局(Old)限制: 所有非静态成员有相同访问权限...4 新手易学, 老兵易用 auto auto是静态类型推导, 必须被初始化 auto本质上是一个类型占位符, 在编译时候推导出类型然后以类似字面替换方式进行使用 autocv限制符(cv-qualifier...而且由于其本质是常量数值原因, enum成员总是可以被隐式转换为整型, 这很容易导致比较两个不同枚举名称出现错误结果 C++11之前会通过类结构将枚举封装, 并建立新转换比较函数覆盖原先操作

1.9K20
  • 终极 C++避坑指南

    %s来匹配 枚举 枚举类型原本是用于解决固定范围取值类型表示,但由于在 C 语言中被定义为了整型类型一种语法糖,导致枚举类型使用出现了一些问题。...这样的话不仅浪费空间,还会出现二义性问题,例如d.a1到底是指B继承a1还是C里继承呢? C++引入虚拟继承概念就是为了解决这一问题。...出于对 C 语言兼容、以及上一节所介绍 C++希望将“语言”类型”解耦设计理念目的,在 C++中,字符串并没有映射为std::string类型,而是保留 C 语言当中处理方式。...但是,更多场景下,我们都会使用std::string类型来保存处理字符串,因为它功能更强大,使用更方便。得益于隐式构造,我们可以把一个字符串常量轻松转化为std::string类型来处理。...因此,如果我们char、signed char、unsigned char类型取地址,一定要考虑会不会被识别为字符串

    2.2K20

    让你 Python 静态起来

    Django model Protocol 自定义类型 普通用法类 型自定义 辅助函数 typing-extensions 实例:简化枚举类型 工程技巧 避免循环引用 mypy 再让我们看看那个例子...所以,如果 Python 能够 “静态” 一些,将会给我们带来几个明显增益: 大幅度提升代码可读性 能够将参数传递 类型错误 扼杀在摇(biān)篮(mǎ)中 能够最大程度利用 IDE 提供代码提示...我们可以对任何变量进行类型注解,无论是赋值之前还是函数传参返回 # 我们可以类、模块、函数 `__annotations__` 变量中获取这些注解 nine_realms: List[str] =...原则上这里就只能输入字符串 "red" "blue" "yellow",某些简单场景下,我们不用额外定义枚举类型。...mypy mypy 原来是一个兼容大部分 Python 语法静态类型 Python 发行版,后来在官方受到启发,并加入类型注解之后,mypy 已经演化成了一个静态类型检查器,我们可以通过 pip 来安装

    96860

    流畅 Python 第二版(GPT 重译)(四)

    逐渐类型系统: 是可选 默认情况下,类型检查器不应对没有类型提示代码发出警告。相反,无法确定对象类型类型检查器会假定Any类型。Any类型被认为与所有其他类型兼容。...② Mypy 报告了问题:“alert_duck"第 1 个参数类型兼容:“Bird”;预期是"Duck”。...③ 我在if条件中使用了海象操作符:=。它将unicodedata.name()调用结果赋name,整个表达式值就是该结果。结果为'',为假值,index不会被更新。...⑥ Mypy 标记这行是因为display_wrong与updatedisplay参数中类型提示兼容。...另一方面,需要处理float,提供一个接受int参数回调是类型错误

    39510

    CCPP中auto关键字对比分析

    编程通常需要把表达式值式赋变量,这就要求在声明变量清楚知道表达式类型,C++11新标准引入了auto 类型说明符,让编译器去分析表达式类型。...= 0, pi = 3, 14; //错误:szpi类型不一致 autodecltype 作用有点相似,都可以推断某个表达式具体类型,当我们希望表达式值推断出要定义变量类型...//输入中读取一行赋值str1 //auto 是一个类型说明符,通过变量初始值来判断变量类型 for (auto &c : str) //对于字符串...先 键盘读取一行字符串,然后使用范围for语句对其进行处理,在范围for语句中使用auto关键字推断变量c数据类型,因为要改变字符串字符,所以将循环变量C定义为引用类型,然后使用for循环依次处理字符串...str字符,将其修改为字符‘X’,在使用下标处理字符串字符是,我们需要知道字符串长度,c++中size()函数用于返回字符串长度,即:字符串中字符个数,类似于C语言中strlen,字符串下标

    87420

    C++11新特性学习笔记

    终端:g++ xxx.cpp -std=c++11 类型推导 auto auto自动类型推导,用于初始化表达式中推断出变量数据类型。...因此,在C语言中,可以在定义局部变量省略auto关键字,直接使用int或其他数据类型。 C++中auto类型推导关键字,用于自动推导变量类型,可以简化代码并且提高代码可读性。...,或者派生类是基类中虚继承,那么不能继承构造函数 l 一旦使用继承构造函数,编译器不会再为派生类生成默认构造函数 4.2 委托构造 继承构造函数类似,委托构造函数也是C++11中对C++构造函数一项改进...类其它几类特殊成员函数也默认构造函数一样,存在用户自定义特殊成员函数,编译器将不会隐式自动生成默认特殊成员函数,而需要程序员手动编写,加大了程序员工作量。...unique_ptr指针本身生命周期:unique_ptr指针创建开始,直到离开作用域。 离开作用域,若其指向对象,则将其所指对象销毁(默认使用delete操作符,用户可指定其他操作)。

    2.1K20

    C++11新特性学习笔记

    终端:g++ xxx.cpp -std=c++11 类型推导 auto auto自动类型推导,用于初始化表达式中推断出变量数据类型。...因此,在C语言中,可以在定义局部变量省略auto关键字,直接使用int或其他数据类型。 C++中auto类型推导关键字,用于自动推导变量类型,可以简化代码并且提高代码可读性。...,或者派生类是基类中虚继承,那么不能继承构造函数 l 一旦使用继承构造函数,编译器不会再为派生类生成默认构造函数 4.2 委托构造 继承构造函数类似,委托构造函数也是C++11中对C++构造函数一项改进...类其它几类特殊成员函数也默认构造函数一样,存在用户自定义特殊成员函数,编译器将不会隐式自动生成默认特殊成员函数,而需要程序员手动编写,加大了程序员工作量。...unique_ptr指针本身生命周期:unique_ptr指针创建开始,直到离开作用域。 离开作用域,若其指向对象,则将其所指对象销毁(默认使用delete操作符,用户可指定其他操作)。

    2.2K20

    c++17好用新特性总结

    前言 C++11开始,标志着c++复兴和现代C++开端。尽管有各种新语言层出穷,但涉及性能系统层面c++仍然是首选,地位无可撼动。...inline变量出现后,我们可以直接将全局变量定义在头文件中,而不用担心出现redefine错误信息。...std::string_view对字符串不具有所有权,且兼容std::stringconst char*两种类型。...c++17之前,我们处理只读字符串往往使用const std::string&,std::string有两点性能优势: 兼容两种字符串类型,减少类型转换内存分配。...总结一下,c++17新增三种类型c++带来了更现代更安全类型系统,它们对应使用场景是: std::any适用于之前使用void*作为通用类型场景。

    3.3K10

    SqlAlchemy 2.0 中文文档(五十七)

    ### 使用传统 Mypy 类型化模型 使用 Mypy 插件 SQLAlchemy 应用程序,其中明确注释不使用Mapped在其注释中使用诸如relationship()之类构造,将根据新系统标记为错误...而以前Variant方法能够通过动态属性获取器维护原始类型所有 Python 行为,这里改进是调用变体,返回类型仍然是原始类型实例,这与 mypy pylance 等类型检查器更加顺畅地配合...### 使用传统 Mypy 类型化模型 使用 Mypy 插件进行 SQLAlchemy 应用程序,其中明确注释不使用Mapped在其注释中构造应用程序,在新系统下会出现错误,因为这些注释在使用relationship..."auto",使用后端支持带有“insertmanyvalues” RETURNING ,将自动启用“eager defaults”用于 INSERT 语句。...虽然以前 Variant 方法能够使用动态属性获取器维护原始类型所有 Python 行为,但这里改进是,调用变体,返回类型仍然是原始类型实例,这与诸如 mypy pylance 类型检查器更加顺畅地配合

    38010

    使用 Mypy 检查 30 万行 Python 代码,总结出 3 大痛点与 6 个技巧!

    首次发起提议,我们有两个主要考虑:虽然 Mypy 在 2012 年 PyCon 芬兰大会上首次亮相,并在 2015 年初发布了兼容 PEP-484 版本,但它仍然是一个相当新工具——至少对我们来说是这样...外部库缺乏类型注解最重要痛点是,我们引入大多数第三方 Python 库要么是无类型,要么兼容 PEP-561。在实践中,这意味着对这些外部库引用会被解析为兼容,这会大大削弱类型覆盖率。...(装饰器另一个问题是我前面提过@functools.lru_cache :由于装饰器最终定义了一个全新函数,所以如果你不正确地注解代码,就可能会出现严重而令人惊讶错误。)...我对循环导入也有类似的感觉——由于要导入类型作为注解使用,这就可能导致出现本可避免循环导入(这也是 Zulip 团队强调一个痛点)。...GitHub 上问题搜索如何解决某个类型问题,我经常会找到 Mypy GitHub Issues (比 Stack Overflow 还多)。

    92420

    流畅 Python 第二版(GPT 重译)(七)

    ⑥ loaded委托bool。¹⁴ ⑦ 总是可以以这种方式调用register,当你需要注册一个你维护但符合接口,这样做是很有用。...提示 如果您正在使用外部类型检查器,那么显式isinstance检查有一个优点:您编写一个条件为isinstance(o, MyType)if语句,那么 Mypy 可以推断在if块内,o对象类型与...这个导入会导致类型提示被存储为字符串,而不会在导入时被评估,函数定义被评估。...我将继续关注 Mypy 问题#3186,期待这个传奇下一章有一个让静态类型类型兼容美好结局——因为它们应该是兼容。 ¹ 设计模式:可复用面向对象软件元素,“介绍”,p. 18。...¹⁴ 避免具体类继承 具体类进行子类化比 ABC mixin 进行子类化更危险,因为具体类实例通常具有内部状态,您覆盖依赖于该状态方法,很容易破坏该状态。

    18810

    NumPy 1.26 中文文档(五十八)

    在混合字符串其他类型,数组强制转换发生了变化 字符串其他类型混合时,例如: np.array(["string", np.float64(3.)], dtype="S") 结果将发生变化,这可能导致在某些情况下具有更长字符串字符串数据类型...特别是,如果未提供dtype="S",任何数值都将导致字符串足够长以容纳所有可能数值(例如,“S32”用于浮点数)。请注意,将非字符串转换为字符串始终提供dtype="S"。...(gh-16815) 具有匹配形状布尔数组索引现在会正确返回IndexError 以前,如果布尔数组索引与索引数组大小匹配但形状匹配,则在某些情况下会出现错误。...以下代码不再引发错误: np.array([np.float64(np.nan)], dtype=np.uint64) 为了避免向后兼容性问题,目前datetime64标量赋值长度过短字符串仍然是可行...混合字符串其他类型,数组强制转换更改 字符串其他类型混合时,例如: np.array(["string", np.float64(3.)], dtype="S") 结果将会改变,这可能会导致某些情况下长字符串字符串数据类型

    22410

    SqlAlchemy 2.0 中文文档(五十八)

    这些参数始终作为普通 Python 字符串传递,而不是作为 SQL 表达式构造;希望在实践中使用 SQL 表达式构造该参数,因此这是一个不向后兼容更改。...此更改也被回溯到:1.4.50 参考资料:#10223 [orm] [错误] 修复了 ORM 具有同名列超类子类连接继承模型中生成 SELECT 出现问题问题,生成 RECURSIVE...这些参数始终作为普通 Python 字符串传递,而不是作为 SQL 表达式构造;希望在实践中使用 SQL 表达式构造此参数,因此这是一个兼容更改。...使用转换器将 PostgreSQL INET CIDR 列中行转换为 Python ipaddress 数据类型禁用,返回字符串。...这些参数始终作为普通 Python 字符串传递,而不是作为 SQL 表达式构造;预计实践中不会使用 SQL 表达式构造来传递此参数,因此这是一个兼容变更。

    11510

    C++缺陷与思考(上)

    分析思考 之所以C数组会出现这种奇怪现象,我猜测,作者考虑是数组实际使用场景,是经常会进行切段截取,也就是说,一个数组类型并不总是完全整体使用,我们可能更多时候用是其中一段。...但C++中格式化字符串可以说完全就是C那一套,根本没有任何扩展。换句话说,除了基本数据类型0结尾字符串以外,其他任何类型都没有用于匹配格式符。...[32];sprintf(buf, "str=%s", str.c_str()); 由于str出现了'\0',如果用%s格式符来匹配的话,会在0位置截断,也就是说buf其实只获取到了str第一个...%s来匹配 枚举 枚举类型原本是用于解决固定范围取值类型表示,但由于在C语言中被定义为了整型类型一种语法糖,导致枚举类型使用出现了一些问题。...在GetAnObj函数内部,t是一个局部变量,局部变量生命周期是创建到当前代码块结束,也就是说,GetAnObj函数结束,这个t一定会被释放掉。

    1.6K50

    深入理解 Python 类型提示

    (这些虚拟机不是模仿整个操作系统,只是简化 CPU 执行环境) CPython 编译程序时,如果指定数据类型,它如何知道变量类型呢?答案是它不知道,它只知道变量是对象。...要记住在运行时不检查类型。如果尝试在兼容类型上运行方法,将只会出现问题。例如尝试对字典切片或字符串中弹出值。...在持续集成管道中测试管道中包含 mypy 是很有意义继承开发环境中类型提示 使用类型提示最大好处之一是,你可以在 IDE 中会获得和静态语言同样自动补全功能。...() 复制代码 巧妙是,现在我们添加了类型,当我们调用类方法,我们可以看到发生了什么: 开始使用类型提示 mypy 有一些关于开发一个代码库很好建议: 1....: 首先,如果你在使用除了字符串,整形,布尔其他 Python 基本类型,你需要导入类型模块。

    1.2K30

    mypy 这个工具,让Python类型提示变得非常实用

    mypy 是 Python 中静态类型检查器。写完带有类型提示代码之后,先别运行行,用 mypy 命令来检查下你代码,如果有错误,会提示你,这让 Python 类型提示有了真正作用。...后续开发过程中可以强制 mypy 检查无误后才能上线,借此提高代码可读性可维护性。 嗯,很实用,不是吗?下面分享一下如何使用 mypy。...{ name }') x: str = 'xxx' y: int = "yyy" #这里应该提示有问题 greeting(x) greeting(y) #这里应该提示有问题 代码我已经指出了两处错误...如果希望检查某一行,可以在注释上加上"# type: ignore": y: int = "yyy" # type: ignore mypy 具有强大且易于使用类型系统,具有很多优秀特性,例如类型推断...exclude 忽略检查文件名、目录名路径 ignore_missing_imports 禁止有关无法解析导入错误消息。

    1.4K30

    Python 进阶指南(编程轻松进阶):十一、注释、文档字符串类型提示

    文档字符串提供了第二个关键好处,因为它们将文档集成到了源代码中。当你编写独立于代码文档,你可能会完全忘记它。相反,您将文档字符串放在模块、类函数顶部,信息仍然易于查看更新。...您赋值或传递错误类型参数,静态类型语言会发出早期警告。 Python 类型提示提供可选静态类型。...第一次阅读,有些错误信息可能很难理解。Mypy 可以报告大量可能错误,这里无法一一列举。找出错误含义最简单方法是在网上搜索。...在这种情况下,您可以搜索类似“赋值中 Mypy 兼容类型内容 每次修改代码从命令行运行 Mypy 是相当低效。为了更好地使用类型检查器,您需要配置您 IDE 或文本编辑器在后台运行它。...即便如此,静态类型检查工具在源代码运行时使用类型提示来分析源代码。类型检查器,比如 Mypy,可以确保您不会将无效值赋传递给函数变量。通过防止一大类错误,这可以节省您时间精力。

    95330

    python类型检测最终指南--Typing使用

    else部分,计算1 +“2”,因为类型不一致所以,会产生一个类型错误。...,程序不会出现错误,此时可以使用类型检查模块通过提示内容确定是否类型输入正确,如mypy。...$ mypy headline.py $ 如果传入一个字符串width="full",再次运行mypy出现一下错误。...所以向自己代码添加类型提示,应该使用注释还是类型注释?简而言之:尽可能使用注释,必要使用类型注释。 注释提供了更清晰语法,使类型信息更接近您代码。...子类对应于子类型,因此可以在任何需要玩家地方使用HumanPlayer。 子类超类重新实现方法类型注释必须匹配。有关示例,请参阅HumanPlayer.play_card()。

    4.9K10
    领券