首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么在Python中创建namedtuple对象后无法读取'typename‘

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

Stack Overflow用户
提问于 2019-11-12 13:50:28
回答 1查看 36关注 0票数 1

该查询进一步参考了this query

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

代码语言:javascript
运行
复制
from collections import *

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

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

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

代码语言:javascript
运行
复制
Traceback (most recent call last):
  File "a.py", line 5, in <module>
    print(emp)
NameError: name 'emp' is not defined

原因是什么?创建了类emp。但是我不知道如何直接访问它。或者我不能这样做?

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

EN

回答 1

Stack Overflow用户

发布于 2019-11-12 13:56:26

选项1:赋值给返回的类型时,只需重复类型名

代码语言:javascript
运行
复制
tp = emp = namedtuple('emp', 'eid enames mob')

选项2:使用声明性样式而不是函数式API

代码语言:javascript
运行
复制
from typing import NamedTuple

class emp(NamedTuple):
    eid: str
    enames: str
    mob: str
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58812764

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档