例如:
>>> Spoken = namedtuple("Spoken", ["loudness", "pitch"])
>>> s = Spoken(loudness=90, pitch='high')
>>> str(s)
"Spoken(loudness=90, pitch='high')"
Run Code Online (Sandbox Code Playgroud)
我想要的是:
>>> str(s)
90
Run Code Online (Sandbox Code Playgroud)
那就是我希望字符串表示显示响度属性.这可能吗 ?
Ray*_*ger 63
是的,这并不难做,并且在namedtuple文档中有一个例子.
该技术是创建一个添加自己的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'
Run Code Online (Sandbox Code Playgroud)
Bjö*_*lex 12
您可以为它定义一个函数:
def print_loudness(self):
return str(self.loudness)
Run Code Online (Sandbox Code Playgroud)
并将其分配给__str__:
Spoken.__str__ = print_loudness
Run Code Online (Sandbox Code Playgroud)