isinstance() bug
Michal Vitecek
fuf at mageo.cz
Wed Jan 28 08:22:25 EST 2004
hello,
please consider the following situation:
under the current directory there's a subdirectory 'package' with two
files: __init__.py and module.py
./package:
__init__.py
module.py
module.py contains:
class A(object):
pass
aModule = A()
now, let's do:
current directory:
>>> import package.module
>>> type(package.module.aModule)
<class 'package.module.A'>
>>> isinstance(package.module.aModule, package.module.A) # so far good
1
>>> a = package.module.A()
>>> isinstance(a, package.module.A) # so far good
>>> import sys
>>> sys.path.append('package')
>>> import module
>>> a = module.A()
>>> isinstance(a, package.module.A) # will return 0 !!!
0
>>> isinstance(package.module.aModule, module.A) # will return 0 !!!
0
>>>
how is it possible that it IS important how you imported a class
definition for isinstance() to work? it's insane!
--
fuf (fuf at mageo.cz)
More information about the Python-list
mailing list