📅  最后修改于: 2023-12-03 15:13:33.037000             🧑  作者: Mango
如果你在使用 Python 3.7 或更早版本时遇到了以下错误:
AttributeError: type object 'Callable' has no attribute '_abc_registry'
这可能是因为在早期版本的 Python 中,Callable
类没有 _abc_registry
属性。该属性是用于抽象基类注册表的,用于指定一个类是否是抽象基类的子类。在 Python 3.8 中引入了此属性。
如果你使用的 Python 版本较新,但仍然遇到此错误,请确保在导入 typing
模块时使用了正确的语法。
例如,下面的语法将抛出上述错误:
from typing import Callable
def foo(func: Callable):
pass
正确的导入方式应该是:
from typing import Callable
def foo(func: Callable[..., None]):
pass
注意,这里的 Callable[..., None]
表示接受任意数量和类型的参数的 callable 类型,返回 None。
总之,如果你在使用早期版本的 Python,并且遇到了上述错误,你需要升级至 3.8 或更高版本。如果你使用的是更新的版本,则需要确保在导入 typing
模块时使用正确的语法。