零基础学Python(第2版)
上QQ阅读APP看书,第一时间看更新

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