正如这里所解释的,当以不同的方式导入相同的模块时(这可能是由于系统路径配置的原因),它的成员是重复的,这会导致我认为不希望出现的行为。
这是一个例子:
>>> import PIL.Image as A
>>> A
<module 'PIL.Image' from '/.../python2.7/site-packages/PIL/Image.py'>
>>> import Image as B
>>> B
<module 'Image' from '/.../python2.7/site-packages/PIL/Image.py'>
>>> B.Image
<class Image.Image at 0x7f066410b9a8>
>>> A.Image
<class PIL.Image.Image at 0x7f06640cd120>
>>> A.Image==B.Image
False
>>> isinstance(A.Image(),B.Image)
False
>>> isinstance(B.Image(),A.Image)
False
这种行为有原因吗?