Hi,

I have encountered some strange behavior of isinstance(/issubclass): depending 
on the import path used for classes i get different output, while the classes i 
compare are in the same file. 

Basically if i import a class as:

    from mod1.mod2 import A

or:

    from mod0.mod1.mod2 import A

which both result in importing the same class, a call to isinstance(inst, A) in 
another module can have a different output. In this module

    print type(inst), A, isinstance(inst, A), issubclass(type(inst), A)

gives:

    <class 'mod0.mod1.mod2.A'> <class 'mod1.mod2.A'> False False

resp.

    <class 'mod0.mod1.mod2.A'> <class 'mod0.mod1.mod2.A'> True True

which seems somewhat logical, but in my case a strange gotcha. My question is:
Is this intended, inevitable or a bug?

Cheers, Lars

PS: this is somewhat simpler than the actual case i've encountered, and i 
haven't tested this exact case, but for now i hope this is enough to get some 
of your insight.
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to