isinstance的一个坑

在使用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

原因和解决方法目前还不清楚。

猜你喜欢

转载自blog.csdn.net/Crazy_zh/article/details/103840834
今日推荐