checking user defined types
David Eppstein
eppstein at ics.uci.edu
Thu Jun 24 02:31:10 EDT 2004
In article <RmuCc.1142728$A6.4637536 at telenews.teleline.es>,
"Luis Solís" <lsolis at mu.intecsa-inarsa.es> 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
object?
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 http://www.ics.uci.edu/~eppstein/
Univ. of California, Irvine, School of Information & Computer Science
More information about the Python-list
mailing list