我如何从python中的命名元组中获取名称?

我创建一个像这样的命名元组:

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'

但这似乎有点混乱。 有没有更干净的方法呢?

为什么名称元组对这些'蛋'方面有他们,如果它不可能访问它,而不诉诸私人方法?


您可以获得__name__属性:

>>> type(ham).__name__
'eggs'

(这里使用type()内建来获得类)。


关于namedtuple属性的主题:

 >>> ham._fields
    ('x', 'y', 'z')

有时候很有用


>>> ham.__class__.__name__
'eggs'
链接地址: http://www.djcxy.com/p/40947.html

上一篇: How do I get the name from a named tuple in python?

下一篇: python circular imports once again (aka what's wrong with this design)