此查询进一步引用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
这是什么原因。类(class)emp
被 build 。但我不知道如何直接访问它。或者我可以不吗?
基本上,我可以创建 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/