Unirse a una lista de objetos de python con el método __str__

Ya he visto aesta pregunta sobre la representación de cadenas en Python pero mi pregunta es ligeramente diferente.

Aquí está el código:

>>> class WeirdThing(object):
...     def __init__(self):
...         self.me = time.time()
...     def __str__(self):
...         return "%s" % self.me
...     def __repr__(self):
...         return ";%s;" % self.me
... 
>>> weird_list = [WeirdThing(), WeirdThing(), WeirdThing()]
>>> print weird_list
[;1302217717.89;, ;1302217717.89;, ;1302217717.89;]
>>> "\n".join(weird_list)
Traceback (most recent call last):
  File "<console>", line 1, in <module>
TypeError: sequence item 0: expected string, WeirdThing found

Me doy cuenta de que esto funciona:

>>> "\n".join(str(wi) for wi in weird_list)
'1302217717.89\n1302217717.89\n1302217717.89'
>>> 

Todavía sería bueno evitar hacerlo cada vez que quiera unir los objetos. ¿Simplemente no es posible?

Respuestas a la pregunta(5)

Su respuesta a la pregunta