在使用unittest的时候,用到了assertIsInstance
方法,该方法调用了isinstance
方法,现有两个文件中的两个类:
# test/c/a.py
class A:
pass
# test/c/b.py
from a import A
class B(A):
pass
其中目录结构如下:
test
|--c
|--__init__.py
|--a.py
|--b.py
在test目录下进入python shell, 将两个类import进来,然后调用
In [1]: import c.a
In [2]: import c.b
In [3]: isinstance(c.b.B(), c.a.A)
Out[3]: False
进入c目录,
In [1]: import a
In [2]: import b
In [3]: isinstance(b.B(), a.A)
Out[3]: True
原因和解决方法目前还不清楚。