VanceE wrote: > Just curious. > > type([]) == type(()) > is False as expected > > and > > assert type([]) == type(()) > throws an AssertionError as expected. > > However the following is not an error > > for x in []: > assert type(x) == type(()) > > I expected an AssertionError but get no errors at all. > Any explaination?
Others have said what happens. Bit of a mind bender -- here's the smallest change to do what you expected: Python 2.6.2 (release26-maint, Apr 19 2009, 01:56:41) [GCC 4.3.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> for x in [],: ... assert type(x) == type (()) ... Traceback (most recent call last): File "<stdin>", line 2, in <module> AssertionError >>> Because of the comma, this creates a tuple containing the empty list, and iterates over the tuple. Mel. -- http://mail.python.org/mailman/listinfo/python-list