[Python-bugs-list] python dumps core on my script (PR#207)
Wed, 16 Feb 2000 11:41:28 -0500 (EST)
On Wed, 16 Feb 2000, Guido van Rossum wrote:
> The problem is that the call to "print self" inside the __repr__()
> method causes a recursive call to __repr__(). This causes an
> unchecked stack overflow in C.
I guessed that about 3 minutes after sending the bug report... ;)
> You can avoid this by not calling "print self" inside __repr__().
> We'll mark this as an open problem because Python should have given
> you a MemoryError as it tries to do with other stack overflows -- but
> catching stack overflows is hard.
I only found this one inadvertantly, but there are many more potential
problems, ie: print self in __str__, creating an object in __init__, or
even a loop involving (for example) __repr__ calling
__hash__, itself calling __repr__
But I imagine these cases are not only very hard to detect but may also
be hard to fix in an efficient way...
NB: the script above that shown this bug was my first 'serious' python
program, but I'm not discouraged... ;)
"Si ca sent bon : mange-le, sinon pisse dessus..." [Proverbe chien]