Am I stupid or is 'assert' broken in Python 2.5??
Peter Otten
__peter__ at web.de
Wed Dec 6 09:42:32 EST 2006
antred wrote:
> I've noticed something odd in Python 2.5, namely that the 2 argument
> version of 'assert' is broken. Or at least it seems that way to me.
>
> Run the following code in your Python interpreter:
>
> myString = None
>
> assert( myString, 'The string is either empty or set to the None type!'
> )
> assert( myString )
>
>
>
> You'll notice that the first assert doesn't do anything, whereas the
> second assert correctly recognizes that myString does not evaluate to
> true. That doesn't seem right. Surely Python should have raised an
> assertion error on the first assert statement, right??
No, the parens turn (myString, '...') into a single (non-False) tuple
argument to the assert *statement*.
>>> assert (None, None)
>>> assert None, None
Traceback (most recent call last):
File "<stdin>", line 1, in ?
AssertionError
Peter
More information about the Python-list
mailing list