此查询进一步参考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/