📌  相关文章
📜  AttributeError: type object 'Callable' has no attribute '_abc_registry' - Python (1)

📅  最后修改于: 2023-12-03 15:13:33.037000             🧑  作者: Mango

Python Error: AttributeError: type object 'Callable' has no attribute '_abc_registry'

如果你在使用 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 模块时使用正确的语法。