此查询进一步参考this query

因此,我正在尝试执行以下代码:

from collections import *

tp = namedtuple('emp', 'eid enames mob')
print(tp)
print(emp)


我可以执行print(tp),生成的输出是<class '__main__.emp'>

但是当我尝试执行print(emp)时,它会生成以下异常:

Traceback (most recent call last):
  File "a.py", line 5, in <module>
    print(emp)
NameError: name 'emp' is not defined


是什么原因。将创建类emp。但是我不知道如何直接访问它。还是我不能?

所以基本上,我可以用相同的方式将tp的实例创建为tp(),但不能将emp的实例创建。为什么?

最佳答案

选项1:在分配给返回的类型时,只需重复类型名称

tp = emp = namedtuple('emp', 'eid enames mob')


选项2:使用声明性样式代替功能性API

from typing import NamedTuple

class emp(NamedTuple):
    eid: str
    enames: str
    mob: str

关于python - 为什么在Python中创建namedtuple对象后无法读取'typename',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58812764/

10-12 16:48