为了账号安全,请及时绑定邮箱和手机立即绑定

Python __str__和列表

Python __str__和列表

富国沪深 2019-11-18 17:58:40
在Java中,如果我调用List.toString(),它将自动在List内的每个对象上调用toString()方法。例如,如果我的列表包含对象o1,o2和o3,则list.toString()看起来像这样:"[" + o1.toString() + ", " + o2.toString() + ", " + o3.toString() + "]"有没有办法在Python中获得类似的行为?我在类中实现了__str __()方法,但是当我打印出对象列表时,请使用:print 'my list is %s'%(list)它看起来像这样:[<__main__.cell instance at 0x2a955e95f0>, <__main__.cell instance at 0x2a955e9638>, <__main__.cell instance at 0x2a955e9680>]如何让python自动为列表中的每个元素(或dict)调用__str__?
查看完整描述

3 回答

?
Cats萌萌

TA贡献1805条经验 获得超9个赞

在python列表上调用string会调用__repr__内部每个元素上的方法。对于某些物品,__str__和__repr__都是一样的。如果您想要这种行为,请执行以下操作:


def __str__(self):

    ...

def __repr__(self):

    return self.__str__()


查看完整回答
反对 回复 2019-11-18
?
千巷猫影

TA贡献1829条经验 获得超7个赞

您可以做两个简单的事情,使用map函数或使用理解。


但这会为您提供字符串列表,而不是字符串。因此,您还必须将字符串连接在一起。


s= ",".join( map( str, myList ) )

要么


s= ",".join( [ str(element) for element in myList ] )

然后,您可以打印此复合字符串对象。


print 'my list is %s'%( s )


查看完整回答
反对 回复 2019-11-18
  • 3 回答
  • 0 关注
  • 372 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信