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:
[color=blue][color=green][color=darkred]
>>> import package.module
>>> type(package.mo dule.aModule)[/color][/color][/color]
<class 'package.module .A'>[color=blue][color=green][color=darkred]
>>> isinstance(pack age.module.aMod ule, package.module. A) # so far good[/color][/color][/color]
1[color=blue][color=green][color=darkred]
>>> 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 !!![/color][/color][/color]
0[color=blue][color=green][color=darkred]
>>> isinstance(pack age.module.aMod ule, module.A) # will return 0 !!![/color][/color][/color]
0[color=blue][color=green][color=darkred]
>>>[/color][/color][/color]
how is it possible that it IS important how you imported a class
definition for isinstance() to work? it's insane!
--
fuf (fuf@mageo.cz)
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:
[color=blue][color=green][color=darkred]
>>> import package.module
>>> type(package.mo dule.aModule)[/color][/color][/color]
<class 'package.module .A'>[color=blue][color=green][color=darkred]
>>> isinstance(pack age.module.aMod ule, package.module. A) # so far good[/color][/color][/color]
1[color=blue][color=green][color=darkred]
>>> 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 !!![/color][/color][/color]
0[color=blue][color=green][color=darkred]
>>> isinstance(pack age.module.aMod ule, module.A) # will return 0 !!![/color][/color][/color]
0[color=blue][color=green][color=darkred]
>>>[/color][/color][/color]
how is it possible that it IS important how you imported a class
definition for isinstance() to work? it's insane!
--
fuf (fuf@mageo.cz)
Comment