繁体   English   中英

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

[英]How do I get the name from a named tuple in 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'

基于python的docnamedtuple为你提供了一个名为'eggs'的namedtuple组子类

所以基本上你需要类名

type(ham).__name__将为您提供类名

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM