我几乎是Python的新手,并不能完全理解下面的场景。
首先,没有模块,因此下面的错误是可以理解的。
>>> import module1
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
import module1
ImportError: No module named module1
然后我创建了模块,下面的句子工作得很好。
module1.py
def func():
print 'this is a test module'
Python IDLE
>>> import module1
>>> module1.func()
this is a test module
在执行第一个语句时,创建了module1.pyc
文件。然后我向module1.py添加了另一个函数。
module1.py
def func():
print 'this is a test module'
def func1():
print 'this is func1'
并尝试导入此新文件并运行以下语句。但错误被抛出如下。
Python IDLE
>>> import module1
>>> module1.func1()
Traceback (most recent call last):
File "<pyshell#11>", line 1, in <module>
module1.func1()
AttributeError: 'module' object has no attribute 'func1'
然后我从文件夹中删除了module1.py
,然后重新保存module1.py
(没有更改内容)。我再次在IDLE提示符中执行了上述语句,并抛出了同样的错误。而这次执行import module1
语句时,与前一次不同,创建了module1.pyc
文件。
然而,在重新启动IDLE时,一切都运行良好,但为什么IDE不会重新编译module1.pyc
每次执行import语句(不重新启动或打开另一个IDLE窗口),或者任何人都可以解释内存中究竟发生了什么每当执行import
语句时。
谢谢!
答案 0 :(得分:2)