《Python语言程序设计》 —3.3.2 from import

举报
华章计算机 发表于 2019/11/18 21:02:36 2019/11/18
【摘要】 本节书摘来自华章计算机《Python语言程序设计》一书中第3章,第3.3.2节,作者是王恺 王志 李涛 朱洪文。

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。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。