子类化类型。任意

问题描述 投票:0回答:0

typing.Any
的文档说

3.11 版更改:Any 现在可以用作基类。这对于避免类型检查器错误非常有用,这些类可以在任何地方躲避类型或高度动态。

这试图避免什么样的错误?一开始我以为心里的情况是

class Foo:
    def __getattr__(self, attr: str) -> typing.Any:
        if attr == 'bar':
            return 5
        raise AttributeError(attr)

def print_bar(foo: Foo) -> None:
    print(foo.bar)

但是,使用 Python 3.10.6 的 mypy 0.971 不会产生任何错误。

python type-hinting python-3.11
© www.soinside.com 2019 - 2024. All rights reserved.