对于将前向引用作为字符串的类,我在调用tying.get_type_hints()时遇到了问题.我的代码可以在函数内部未定义的情况下运行.我在下面的Python3.10中复制了一个最小的例子:
import typing
class B:
pass
class A:
some_b: "B"
print(typing.get_type_hints(A)) # prints {'some_b': <class '__main__.B'>}
import typing
def func():
class B:
pass
class A:
some_b: "B"
print(typing.get_type_hints(A))
func() # NameError: name 'B' is not defined
这是预期中的行为吗?有没有办法绕过这个问题,并确保对字符串的正向引用在正确的作用域中求值?