大概意思是这样的
from a.b.c import ddd as ddd_1
from b.c import ddd as ddd_2
# 其实 ddd 应该是一个东西.
ddd_1 is ddd_2 # 返回 false
以上是伪代码. 大概是这个意思吧.
这是因为啥导致的...
1
Hieast 2019 年 2 月 19 日 a.b 和 b 通常情况下不是一个东西
你自己去 sys.modules 下看看 a 和 b 的信息,对比一下 |
2
wsh1108 2019 年 2 月 19 日
这两个对象在内存中的地址不一样吧?你用 == 试试,如果返回 true,应该就是这个问题
|
3
mayorbryant 2019 年 2 月 19 日
ddd_1 和 ddd_2 在 globals()里面是不同的对象,只是 ddd_1(x) == ddd_2(x)
|
4
chaleaochexist OP @Hieast
@wsh1108 @mayorbryant 谢谢,我在实际的开发过程中 遇到的这个情况. 实际情况是. ddd_1 和 ddd_2 都是我自定义的 exception 当我 catch 这个 exception 的时候, 竟然获取不到. 大概是这个意思 ``` try: raise ddd_1 except ddd_2 as e: pring 123 ``` |