checking user defined types

David Eppstein eppstein at
Thu Jun 24 08:31:10 CEST 2004

In article <RmuCc.1142728$A6.4637536 at>,
 "Luis Solís" <lsolis at> wrote:

> I have defined a class Myclass
> I instanciate the class and I use it in a function, and I could like check
> the argument type in the function, but this code don't works
> func (xMyclass,..):
>     if  type(xMyclass) is type(Myclass): ...
> then I must create a new object of the class and then
> if type(xMyclass) is type(Myclass()):
> this solution has the problem when Myclass has a complex constructor.
> Do you known another solution ?

Why do you think an instance object should have the same type as a class 

You could do
    if type(xMyclass) is Myclass: ...
but that only works for new-style classes and also doesn't match 
instances of subclasses of your class.  Probably what you really want is
    if isinstance(xMyclass, Myclass): ...

David Eppstein            
Univ. of California, Irvine, School of Information & Computer Science

More information about the Python-list mailing list