python - 为什么在Python中创建namedtuple对象后无法读取 'typename'

标签 python python-3.x namedtuple

此查询进一步引用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/

相关文章:

Python 'Logger' 模块双重记录

python - 打印字符串的变量/动态列表

python - Python 中的 Namedtuple 格式化/ pretty-print

python - Pandas - 如何用 NaN 替换这些异常值

使用 pyhook 进行 Python 线程处理

python-3.x - Python编译器将 print 函数中的 10^-16 添加到答案中

python - 有没有更好的方法用 urlopen 做 csv/namedtuple?

python - Unpickle具有向后兼容性的namedtuple(忽略附加属性)

python Pandas : passing in dataframe to df.申请

python - Flask 如何处理并发请求?