《Python语言程序设计》 —3.3.2 from import
3.3.2 from import
除了前面介绍的使用import将整个模块导入,也可以使用from import将模块中的标识符(变量名、函数名等)直接导入当前环境,这样我们在访问这些标识符时就不再需要指定模块名。其语法格式如下:
from 模块名 import 标识符1, 标识符2, ..., 标识符N
代码清单3-17展示了如何直接导入模块中的标识符。
代码清单3-17 testfibo2.py脚本文件
1 from fibo import PrintFib, GetFib #导入fibo模块中的PrintFib和GetFib
2 PrintFib(5) #忽略fibo模块名直接调用PrintFib函数
3 ls=GetFib(5) #忽略fibo模块名直接调用GetFib函数
4 print(ls) #输出ls中保存的斐波那契数列前5项数据
程序执行结束后,将在屏幕上输出如下结果:
1 1 2 3 5
[1, 1, 2, 3, 5]
也可以改为只导入一个模块中的部分标识符,如代码清单3-18所示。
代码清单3-18 testfibo3.py脚本文件
1 from fibo import PrintFib #只导入fibo模块中的PrintFib
2 PrintFib(5) #忽略fibo模块名直接调用PrintFib函数
程序执行结束后,将在屏幕上输出如下结果:
1 1 2 3 5
提示 如果要导入一个模块中的所有标识符,也可以使用“from模块名import *”的方式。例如,对于代码清单3-17中的第1行代码,可以直接改为“from fibo import *”。
注意 如果一个模块定义了列表__all__,则“from模块名import *”语句只能导入
__all__列表中存在的标识符。例如,对于代码清单3-15中定义的fibo模块,如果在第一行加入__all__列表的定义“__all__=['PrintFib']”,则通过“from fibo import *”只能导入fibo模块中的PrintFib,而不会导入GetFib。
无论是利用import导入模块,还是用from import导入模块中的标识符,在导入的同时都可以使用as为模块或标识符起别名,如代码清单3-19和代码清单3-20所示。
代码清单3-19 testfibo4.py脚本文件
1 import fibo as f #导入fibo模块,并为fibo起别名f
2 f.PrintFib(5) #调用fibo模块中的PrintFib函数,输出斐波那契数列前5项
代码清单3-20 testfibo5.py脚本文件
1 from fibo import PrintFib as pf #导入fibo模块中的PrintFib,并重命名为pf
2 pf(5) #调用fibo模块中的PrintFib函数,输出斐波那契数列前5项
代码清单3-19和代码清单3-20运行结束后,都会在屏幕上输出1 1 2 3 5。
- 点赞
- 收藏
- 关注作者
评论(0)