我有一个具有__str__
方法的对象列表。我想获得列表中所有对象的字符串。但当我这样做时(显而易见?)' '.join(my_list)
我收到错误TypeError: sequence item 0: expected str instance, LogEntry found
顺便说一句,这样做的目的是简单地为日志条目提供Tkinter列表框内容。如果有更好的方法,请告诉我。但这是我的代码
class LogEntry():
def __init__(self, msg, type):
...
def __str__(self):
return self.msg
my_log = [LogEntry("123", WARN), LogEntry("abc", DEBUG) ]
print "\n".join(my_log)
答案 0 :(得分:2)
使用列表推导在每个对象上列出__str__
的结果:
my_log_strs = [str(log) for log in my_log]
或map
:
my_log_strs = map(str, my_logs)
现在你可以:
print "\n".join(my_log_strs)
或者更简洁:
print "\n".join(str(log) for log my_log)