
5.2.2 模块的导入
在使用一个模块的函数或类之前,首先要导入该模块。前面已经多次使用模块的导入,模块的导入使用import语句。模块导入语句的格式如下所示。
import module_name
这条语句可以直接导入一个模块。调用模块的函数或类时,需要以模块名作为前缀,其格式如下所示。
module_name.func()
如果不想在程序中使用前缀符,可以使用from…import…语句导入。from…import…语句的格式如下所示。
from module_name import function_name
2.2.3小节比较了import语句和from…import…语句的不同。导入模块下所有的类和函数,可以使用如下格式的import语句。
from module_name import *
此外,同一个模块文件支持多条import语句。例如,定义一个名为myModule的模块。该模块定义一个全局变量count和一个函数func()。每次调用函数func(),使变量count的值加1。
01 count = 1 # 定义全局变量count并赋值 02 03 def func(): # 定义func函数 04 global count 05 count = count + 1 06 return count
多次导入myModule模块,查看变量count的结果。
01 import myModule 02 print("count =", myModule.func()) 03 myModule.count = 10 04 print ("count =", myModule.count) 05 06 import myModule 07 print ("count =", myModule.func())
【代码说明】
·第1行代码导入模块myModule。
·第2行代码调用模块中的函数func()。此时变量count的值等于2。输出结果:count=2。
·第3行代码给模块myModule中的变量count赋值,此时变量count的值等于10。
·第4行代码获取变量count的值。输出结果:count=10。
·第6行代码再次导入模块myModule,变量count的初始值为10。
·第7行代码调用func(),变量count的值加1。输出结果:count=11。
Python中的import语句比Java的import语句更灵活。Python的import语句可以置于程序中任意的位置,甚至可以放在条件语句中。在上面的代码段后添加如下语句:
01 # import置于条件语句中 02 if myModule.count > 1: 03 myModule.count = 1 04 else: 05 import myModule 06 print ("count =", myModule.count)
【代码说明】
·第2行代码判断myModule.count的值是否大于1。
·第3行代码,如果count的值大于1,则把变量count的值置为1。由于前面代码段中变量count的值为11,所以变量count的值被赋值为1。
·第5行代码,如果count的值小于等于1,则导入import语句。
·第6行代码输出变量count的值。输出结果:count=1