yet 'nother newbie question

Ivan Van Laningham ivanlan at
Sat Nov 27 21:02:20 CET 1999

Hi All--

"William J. King" wrote:
> Hi:
> When passing an argument to a function etc. -- how does one determine
> that it is
> an integer that is being passed and not a string for example... Is there
> something
> available to determine it's type. The only way I can figure is to use
> 'try' and
> 'except' for a partial solution:
> try:
>     x = x + ""    # suceeds then its a string -- if so
>    x = string.atoi(x)
> except:
>     x = x + 0    #This sort of partially ensures that int is passed.....
> or if you have the reverse situation?...
> Hmmm -- It seems python knows the difference internally, how can I
> determine
> types and work with variables without having to resort to exception
> checking...
> Hope this makes sense... Thanks.....


That is, 

if type(x) == type(""):
	print "I'm a string"
elif type(x) == type(0):
	print "I'm an integer"
	print "I'm something else"

type() returns a repr (a printable string) object that might look like

	<type 'string'>

There is a module (types) that you can import which has shortcuts in it
so that you can call

if type("")==StringType:
	blah blah

but I generally don't bother, since it saves almost nothing on typing.

<and-we-all-know-keystrokes-determine-reality>-ly y'rs,
Ivan Van Laningham
Callware Technologies, Inc.
ivanlan at
ivanlan at
See also:
Army Signal Corps:  Cu Chi, Class of '70
Author:  Teach Yourself Python in 24 Hours

More information about the Python-list mailing list