【发布时间】:2012-06-11 23:26:14
【问题描述】:
我创建一个这样的命名元组:
from collections import namedtuple
spam = namedtuple('eggs', 'x, y, z')
ham = spam(1,2,3)
然后我可以使用例如访问火腿的元素
>>> ham.x
1
>>> ham.z
3
在解释器中,
>>> ham
eggs(x=1, y=2, z=3)
但如果我只想得到“鸡蛋”怎么办?我能想到的唯一方法是
>>> ham.__repr__.split('(')[0]
'eggs'
但这似乎有点混乱。有没有更清洁的方法?
如果不诉诸私有方法就无法访问命名元组,为什么要对它们具有这种“鸡蛋”方面?
【问题讨论】:
-
我想你的意思是
spam = namedtuple('eggs', 'x, y, z')。 -
答案是 instance.__class__.__name__ 虽然...
-
不确定我是否理解反对票。你是说如果我读得足够多,我就会得出答案吗?
-
我没有投反对票,我只是注意到这个问题与给定的链接基本相同 - 重复。
标签: python