[Baypiggies] Newbie-ish type questions...

Keith Dart keith at dartworks.biz
Wed Apr 23 12:07:18 CEST 2008

On Tue, 22 Apr 2008, Charles Merriam wrote:

> Hello,
> I've been creating a growing number of type functions of the form:
> def is_list(l):
>    return type(l) is list
> def is_string(s):
>    return isinstance(s, basestring)
> def is_iter(i):
>    return hasattr(i, "next") and hasattr(i, "__iter__")
> ...etc., etc.
> I feel like I must of missed something when I learned Python.  Is
> there a simple call I'm missing for
> these?  Does this get better in 3.0?

There is the "types" module, that has the types of most Python objects.

However, I really don't see much difference between these:

if is_list(l):

if type(l) is list:

And you also save a function call when using the latter.

However, it is probably preferrable to do this:

if isinstance(l, list):

since that will also catch subclasses of list.

Even better, do type checking sparingly.

-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Keith Dart <keith at dartworks.biz>
    public key: ID: 19017044

More information about the Baypiggies mailing list