考虑一下:
/
test.py
lib/
L __init__.py
+ x/
L __init__.py
L p.py
与 p.py:
class P():
pass
p1 = P()
使用 test.py:
import sys
import os
sys.path.append(os.path.join(os.path.dirname(os.path.abspath(__file__)), "lib"))
import lib.x.p
import x.p
print(id(lib.x.p.p1))
print(id(x.p.p1))
尽管我从同一个包/模块导入同一个对象,但在这里我得到了不同的对象 ID 有人可以解释一下这种行为,因为它非常令人困惑,而且我没有找到任何关于它的文档。
谢谢!