简单来说,每一个.py结尾的Python源代码文件都是一个模块。 其他文件可以通过导入一个模块读取这个模块的内容。导入从本质来讲,就是载入另一个文件,并能够读取那个文件的内容。一个模块的内容通过这样的属性能够被外部模块使用。这种基于模块的方式使模块变成了Python程序架构的一个核心概念。更大的程序往往以多个模块的形式出现,并且导入了其他模块文件的工具。
如果在当前目录下,假如你有文件名为script.py,里面定义了两个变量,并打印出来
>>> import script
var1 = 100
var2 = 200
如果此时修改script.py里面的文件,增加变量var3,重新import的话,是不会拿变量var3打印出来的。 这是Python中的有意设计!
导入是一个开销很大的操作,以至于每个文件,每个程序只能运行一次!!! 所以如果真的想要Python在同一个会话中再次运行文件,需要调用imp标准库模块中的reload函数(Python2.6中自带,Python3中非内置)
>>> from imp impore reload
>>> reload(script)
var1 = 100
var2 = 200
var3 = 300 # 新增加的变量
reload函数载入并运行了文件最新版本的代码,如果已经在另一个窗口中修改并保存了它,那将反应出修改变化!