【问题标题】:get_type_hints raise NamError with local classget_type_hints 使用本地类引发 NamError
【发布时间】:2020-09-14 14:58:54
【问题描述】:

我正在使用python函数typing.get_type_hints()。不幸的是,当我传递一个包含对其自身的引用的本地类时,此函数会引发错误。

这是一个错误还是我做错了什么?
如果确实是错误,我应该在哪里报告?

from typing import *

class Tata:
    parent: "Tata"

def example():
    class Toto:
        parent: "Toto"

    print(get_type_hints(Tata))
    print(get_type_hints(Toto))  # Raise NameError: name 'Toto' is not defined

【问题讨论】:

    标签: python-3.x reflection bug-reporting


    【解决方案1】:

    使用类本身作为类型提示,而不是字符串(它们最终成为前向引用,它将导致namespace conflicts

    from typing import get_type_hints
    
    class Tata:
        parent: str = "Tata"
    
    def example():
        class Toto:
            parent: Tata
    
        print(get_type_hints(Tata))
        print(get_type_hints(Toto))
    
    example()
    

    【讨论】:

      猜你喜欢
      • 2020-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-08
      • 1970-01-01
      • 2019-09-20
      相关资源
      最近更新 更多