On Fri, 24 Jul 2009 15:03:29 -0400, Roy Smith wrote: > In article <mailman.3674.1248461573.8015.python-l...@python.org>, > Terry Reedy <tjre...@udel.edu> wrote: > >> Better: if isinstance(x, (int, float, complex)): > > I never noticed this before, but it seems odd that the second argument > to isinstance() should be a tuple. Using the normal arguments made > about tuples vs. lists, it seems like a list would be the right data > structure here.
What would be the point of using a list? You're never going to sort it, or append items to it, or otherwise mutate it. You build it, pass it to a function which doesn't modify it in any fashion, then it gets garbage collected. > I suppose a set would be even more right, but (I'm > pretty sure) isinstance() predates sets. Yes. [st...@sylar ~]$ python1.5 Python 1.5.2 (#1, Apr 1 2009, 22:55:54) [GCC 4.1.2 20070925 (Red Hat 4.1.2-27)] on linux2 Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam >>> isinstance <built-in function isinstance> >>> set Traceback (innermost last): File "<stdin>", line 1, in ? NameError: set > I'm curious why a tuple was chosen. Tuples are smaller and faster to build than lists -- they're the most lightweight sequence type in Python. You don't need all the extra functionality of lists, so why go to the time and effort of building a list? -- Steven -- http://mail.python.org/mailman/listinfo/python-list