ValueProxy[int] 抛出错误:“类型”对象不可下标

Posted

技术标签:

【中文标题】ValueProxy[int] 抛出错误:“类型”对象不可下标【英文标题】:ValueProxy[int] throws error: 'type' object is not subscriptable 【发布时间】:2022-01-05 20:01:14 【问题描述】:

我有以下代码:

from multiprocessing.managers import ValueProxy

def test(value: ValueProxy[int]):
    print("foo")

test(None)

它会抛出这个错误:

Traceback (most recent call last):
  File ".../test.py", line 4, in <module>
    def test(value: ValueProxy[int]):
TypeError: 'type' object is not subscriptable

如何键入提示ValueProxy[int]

【问题讨论】:

【参考方案1】:

在 Python 3.9 (PEP 585) 中为 multiprocessing.managers 模块以及其他标准库模块添加了类型提示泛型(= 编写 ValueProxy[int] 而不仅仅是 ValueProxy)。

见:

multiprocessing/managers.py(已添加__class_getitem__ = classmethod(types.GenericAlias)) Pull request on GitHub Issue on the Python bug tracker

您使用的 Python 版本似乎早于 3.9。

【讨论】:

以上是关于ValueProxy[int] 抛出错误:“类型”对象不可下标的主要内容,如果未能解决你的问题,请参考以下文章

Swift:无法使用类型为“(@noescape(Int)抛出-> Bool)”的参数列表调用“过滤器”

Pandas astype 为 int() 抛出无效的文字,以 10 为底错误

SQL 默默地将 int 转换为 varchar,但在遇到 varchar 时会抛出错误?

Java JDBC 对要求仅从特定行返回详细信息的 SQL 查询抛出错误

对象(通用)的 Protobuf-net 序列化抛出错误没有为类型定义序列化程序:System.Object

Swift 异常处理