How to tell the difference between string and list
Gerhard Häring
gh at ghaering.de
Fri Dec 5 09:58:37 EST 2003
More information about the Python-list mailing list
Fri Dec 5 09:58:37 EST 2003
- Previous message (by thread): How to tell the difference between string and list
- Next message (by thread): How to tell the difference between string and list
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Jan Kokoska wrote:
> Hello,
>
> I need to recognize 'var' and ['var'], usually I would use:
>
> if a.__class__() == '':
> #string
> elif a.__class__() == []:
> #list
>
> But unfortunately in Zope PythonScripts, where I need to use this, one
> is not supposed to use underscore-prefixed methods as I just found out.
>
> I figure this is a question general enough to post here (and not on the
> Zope list), any clues?
Lots of possibilities:
Python 2.2+:
Politically correct:
if isinstance(a, str):
elif isinstance(a, list):
Even more politically correct (Python 2.3+):
if isinstance(a, basestring):
elif isinstance(a, list):
No-bullshit version (Python 2.2+):
if type(a) is str:
elif type(a) is list:
Python 2.1 and even more ancient ones:
if type(a) is type(""):
elif type(a) is type([]):
or
from types import StringType, ListType
if type(a) is StringType:
elif type(a) is ListType
But if you need *any* of these, chances are you should redesign your API so you
don't need to switch on the type of the parameter. IMO it's generally better to
have a different method for each type.
-- Gerhard
- Previous message (by thread): How to tell the difference between string and list
- Next message (by thread): How to tell the difference between string and list
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list