# Still Hating Python

$ python
>>> class TestClass:
...   def __init__(self):
...     self.x = "X"
...   def __str__(self):
...     return self.x
...
>>> test = TestClass()
>>> str(test)
'X'
>>> test_list = [TestClass(), TestClass(), TestClass()]
>>> test_list
[<__main__.TestClass instance at 0xb7d1a4ec>,
 <__main__.TestClass instance at 0xb7d1a50c>, 
 <__main__.TestClass instance at 0xb7d1a52c>]
>>> str(test_list)
'[<__main__.TestClass instance at 0xb7d1a4ec>, 
  <__main__.TestClass instance at 0xb7d1a50c>, 
  <__main__.TestClass instance at 0xb7d1a52c>]'
>>> print test_list
[<__main__.TestClass instance at 0xb7d1a4ec>,
 <__main__.TestClass instance at 0xb7d1a50c>, 
 <__main__.TestClass instance at 0xb7d1a52c>]
>>> print test_list[0]
'X'

list.__str__() calls __repr__() on each item, not __str__()???!!!

Wednesday, September 27, 2006