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 查询抛出错误