python - 导入之间的对象ID不一致

python - 导入之间的对象ID不一致,第1张

我在使用跨文件导入时注意到python解释器中的一个奇怪行为。以下代码示例说明了这一点。类状态应该是相同的,因为它应该只被实例化一次,但是它的打印ID表明对象实际上是不同的。

这是某个地方记录的错误或功能吗?

运行以下代码:

# main.py

print 'Entering Main'
import sys
print 'Importing Actions from Main. Actions is in modules:', 'actions' in sys.modules
import actions

class State (object):
  pass

print 'State ID in Main', id(State)

if __name__ == '__main__':
  print 'OK'
print 'End of Main!'
# actions.py
print 'Entering Actions'

print 'Importing State from Actions'
from main import State

print 'State ID in Actions', id(State)
print 'End of Actions!'

产生以下输出:

  

进入主体   从Main导入操作。操作在模块中:错误
  输入行动
  从行动中导入国家
  进入主体   从Main导入操作。行动在模块中:真实   Main 34782944中的状态ID   主要结束!
  行动34782944中的州ID   行动结束!
  Main 34817664中的状态ID
  OK
  主要结束!

Gist URL

最佳答案:

0 个答案:

没有答案
本文经用户投稿或网站收集转载,如有侵权请联系本站。

发表评论

0条回复