簡體   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