Python TypeVar 中输出变量和第一个参数之间的区别

2024-02-29

我正在查看 Python TypeVar 的文档,但无法弄清楚第一个参数(或者可能是赋值变量)的含义。

从 3.8 文档:

A = TypeVar('A', str, bytes)  # Must be str or bytes

def longest(x: A, y: A) -> A:
    """Return the longest of two strings."""
    return x if len(x) >= len(y) else y

我的问题是,下面的 A 是什么意思?

 A = TypeVar('A', str, bytes)

我见过的每个例子的变量名都与第一个参数相同。


本质上,是的,它必须是变量名。从PEP 484 https://www.python.org/dev/peps/pep-0484/#generics:

TypeVar() 的参数必须是等于变量名称的字符串 它被分配到的。不得重新定义类型变量。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python TypeVar 中输出变量和第一个参数之间的区别 的相关文章

随机推荐

  • 获取我在 Sql Server 中更新的行的 Id

    我正在尝试返回在 sql 中更新的行的 Id UPDATE ITS2 UserNames SET AupIp AupIp WHERE Customer ID TCID AND Handle ID ID SELECT ERROR AS Err
  • 为什么第一个 WCF 客户端调用很慢?

    我试图弄清楚为什么客户端应用程序启动后的第一个 WCF 调用比第二个调用花费更多的时间 我做了什么来测试 实现了简单的自托管 WCF 服务器和控制台客户端 服务器已预热 在运行测试之前我运行它并调用方法几次 绑定是basicHttpBind
  • 重新启动 erlang 进程并保留状态

    我有一个主管进程 它启动多个子进程 目前 当孩子死亡时 我会生成一个具有新 Pid 的新进程 这意味着我丢失了刚刚死亡的子进程的状态信息 我希望我的客户始终使用相同的标识符与子进程进行通信 尽管子进程可能会死亡并由主管重新启动 我正在考虑使
  • 无法将类型“UnsafePointer”的值转换为预期参数类型“UnsafePointer<_>”

    我正在 OS X 的 Swift 中使用外部 C 库 我得到一个值 cda 它在 C 中定义为double 它是一个指向双数组的指针 当导入到 Swift 中时 它会将类型识别为 UnsafeMutablePointer 我正在尝试将此指针
  • 如何在 mpandroidchart 中设置 x 标签和 y 标签的值

    我正在使用 mpandroidchart android 库 我正在实施折线图 这里我可以自己设置x和y标签吗 目前 它正在根据提供给图表的数据集添加值 您能对此提供一些想法吗 您必须在轴对象上使用格式化程序 有两种格式化程序 XAxisV
  • 带有 NULL 的列不能用于 Bigquery 中的联合

    我正在工作中构建动态 sql 生成器 并且在联合查询方面遇到困难 当我运行以下查询时 SELECT NULL AS field 列类型是BOOL默认情况下 它可以用于与整数类型列的联合 如下所示 SELECT field FROM SELE
  • 如何以编程方式“重新启动”Android 应用程序?

    首先 我知道不应该真正终止 重新启动 Android 上的应用程序 在我的用例中 我想在服务器向客户端发送一条特定信息的特定情况下对我的应用程序进行出厂重置 用户只能使用应用程序的一个实例登录服务器 即不允许使用多个设备 如果另一个实例获得
  • 致命错误:在非对象 codeigniter $query->num_rows()==1) 上调用成员函数 where() [重复]

    这个问题在这里已经有答案了 可能的重复 CodeIgniter 在非对象上调用成员函数 select https stackoverflow com questions 8322124 codeigniter call to a membe
  • 在 CQRS http 应用程序中实现 Saga/Process Manager

    按照这个例子 https msdn microsoft com en us library jj591569 aspx https msdn microsoft com en us library jj591569 aspx 图3 它如何适
  • ofstream 无法在 Linux 上运行

    我有一个简单的测试代码 include
  • 递归排列列表

    我想通过递归来解决问题 我有一个给定的字母列表 我想要这些字母的所有排列 直到达到给定的长度 var letters A B C D E F function myRekursion alphabet n if n gt 0 for var
  • 高效利用Android资源

    我试图弄清楚如何有效地使用 Android 的资源系统 既提供最高分辨率的资源 又保持较小的 apk 大小 我的资源文件夹 drawable normal mdpi drawable normal hdpi drawable large m
  • 使用 OpenMP 在两个内核上设置线程关联

    我使用的是C程序 在Windows7上用gcc 4 9 2编译 使用OpenMP 4 0 我的电脑是双核 四个线程 我想使用线程亲和力传播并使用放置在不同核心上的 2 个线程 因此 当我从 DOS 设置环境变量时 设置 OMP NUM TH
  • Xamarin-Android 和 UWP 之间的蓝牙连接

    在相当多的时间里 我一直在努力寻找一个可行的解决方案来通过 IP 连接或蓝牙连接 Android 设备和 UWP 应用程序 在 PC 上 主要问题是找到一组足够简单但又保证可以工作的代码或示例 这样我的努力就不会白费 这种情况已经持续了一个
  • 为什么要加密用户密码? [复制]

    这个问题在这里已经有答案了 可能的重复 为什么不存储原始密码 https stackoverflow com questions 3107810 why arent original passwords stored 如果密码是数据中最不有
  • Laravel 设置无法打开流

    我正在尝试设置 laravel 但事实证明它是正确的 我从 github 克隆了它 还使用 Composer 克隆了 Laravel 这两种技术都可以工作 这很好 因为它是我真正想学习的东西 比我想象的简单 然而 当我尝试导航到名为 iPr
  • Rowset不支持向后滚动

    我正在尝试使用以下代码查询 MySQL 数据库 declare the variables Dim Connection Dim Recordset Dim SQL declare the SQL statement that will q
  • 读取分区镶木地板时,Spark 错误地将以“d”或“f”结尾的分区名称解释为数字

    我在用着spark read parquet 从分区中组织镶木地板文件的文件夹中读取 当分区名称以以下结尾时 结果将是错误的f or d 显然 Spark 会将它们解释为数字而不是字符串 我创建了一个最小的测试用例 如下所示来重现该问题 d
  • 无法在 eclipse 中安装 blackberry webworks 插件

    using http www blackberry com go eclipseUpdate 3 6 java http www blackberry com go eclipseUpdate 3 6 java 我安装了Blackberry
  • Python TypeVar 中输出变量和第一个参数之间的区别

    我正在查看 Python TypeVar 的文档 但无法弄清楚第一个参数 或者可能是赋值变量 的含义 从 3 8 文档 A TypeVar A str bytes Must be str or bytes def longest x A y