我创建一个这样的命名元组:
from collections import namedtuple
spam = namedtuple('eggs', 'x, y, z')
ham = spam(1,2,3)
Run Code Online (Sandbox Code Playgroud)
然后我可以用例如火腿访问元素
>>> ham.x
1
>>> ham.z
3
Run Code Online (Sandbox Code Playgroud)
在翻译中,
>>> ham
eggs(x=1, y=2, z=3)
Run Code Online (Sandbox Code Playgroud)
但是,如果我只想得到"蛋"呢?我能想到的唯一方法是
>>> ham.__repr__.split('(')[0]
'eggs'
Run Code Online (Sandbox Code Playgroud)
但这似乎有点凌乱.这样做有更清洁的方法吗?
如果不使用私有方法无法访问它,为什么命名元组有这种"蛋"方面?
Gar*_*tty 28
您可以获取__name__该类的属性:
>>> type(ham).__name__
'eggs'
Run Code Online (Sandbox Code Playgroud)
(这里使用的type()内置拿到类).
kno*_*ark 11
关于namedtuple属性的主题:
>>> ham._fields
('x', 'y', 'z')
Run Code Online (Sandbox Code Playgroud)
知道有时很有用