>> s = Spoken(loudness=90, pitch='high-6ren">
gpt4 book ai didi

python - 我可以覆盖命名元组的字符串形式吗?

转载 作者:IT老高 更新时间:2023-10-28 21:53:11 24 4
gpt4 key购买 nike

例如:

>>> Spoken = namedtuple("Spoken", ["loudness", "pitch"])
>>> s = Spoken(loudness=90, pitch='high')
>>> str(s)
"Spoken(loudness=90, pitch='high')"

我想要的是:

>>> str(s)
90

那是我希望字符串表示显示响度属性。这可能吗?

最佳答案

是的,这并不难,namedtuple docs 中有一个例子。 .

技术是制作一个添加自己的str方法的子类:

>>> from collections import namedtuple
>>> class Spoken(namedtuple("Spoken", ["loudness", "pitch"])):
__slots__ = ()
def __str__(self):
return str(self.loudness)

>>> s = Spoken(loudness=90, pitch='high')
>>> str(s)
'90'

更新:

您也可以使用 typing.NamedTuple 获得同样的效果。

from typing import NamedTuple

class Spoken(NamedTuple):

loudness: int
pitch: str

def __str__(self):
return str(self.loudness)

关于python - 我可以覆盖命名元组的字符串形式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7914152/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com