Python del sys.modules触发了问题

问题描述 投票:1回答:1

mod.py

print "this is mod modules ..."
import sys
del sys.modules['mod']
sys.modules['mod'] = "test mod"

main.py

import mod

print mod

当我执行时,显示异常:

# python main.py
this is mod modules ...
Traceback (most recent call last):
  File "main.py", line 1, in <module>
    import mod
  File "/root/test1111/mod.py", line 4, in <module>
    sys.modules['mod'] = "test mod"
AttributeError: 'NoneType' object has no attribute 'modules'

我想知道,对不起,是什么造成的?

python sys
1个回答
0
投票

不要删除sys.modules中的内容。它在解释器内部使用,删除时可能会出现未定义的行为,尤其是当您尝试再次重新导入模块时。

未定义的行为意味着可能会出现奇怪的错误,解释器可能会崩溃,或者您的猫可能会着火。

© www.soinside.com 2019 - 2024. All rights reserved.