gpt4 book ai didi

Python:未知类型提示不会因 __future__ import 引发异常

转载 作者:行者123 更新时间:2023-12-01 01:01:52 25 4
gpt4 key购买 nike

所有类都需要先定义才能用作类型提示。为了在某​​些情况下解决这个问题,__future__ import is recommended 。这就是为什么以下代码可以正常工作(在 Python 3.7 中):

from __future__ import annotations


class Person:
def get_relative(name: str) -> Person:
...

如果没有 __future__ 导入,则会引发 NameError。但这段代码也可以正常工作:

from __future__ import annotations


class Person:
def get_relative(name: BlahBlahTypoWhatever) -> Person:
...

我预计会出现类似 NameError: name 'BlahBlahTypoWhatever' is not Defined 的情况。这是预期的行为吗?

最佳答案

Python 本身不进行任何类型检查,因此它不会引发任何有关错误类型的错误。

annotations future 只是隐式地将所有注释更改为字符串,即,这是等效的:

from __future__ import annotations

def foo(bar: Baz): pass
def foo(bar: 'Baz'): pass

由于您的注释现在是一个字符串,并且 Python 不会对它执行任何操作,因此在任何时候都绝对不会对该名称进行任何解析,因此不会引发任何错误。

关于Python:未知类型提示不会因 __future__ import 引发异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55729069/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com