|
|
|
|
移动端

2.4.2 模块(2)

《自学Python:编程基础、科学计算及数据分析》第2章Python 基础,在本章中,我们将学习Python 语言的基本使用,掌握Python 的基本使用方法,为后续的学习打下基础。本节为大家介绍模块。

作者:李金来源:机械工业出版社|2018-05-03 21:05

人工智能+区块链的发展趋势及应用调研报告


2.4.2 模块(2)

作为脚本运行它时,条件满足:

  1. In [9]: %run ex2.py   
  2. 6 3.1416 

作为模块导入它时,条件不满足,判断里面的内容不会被执行:

  1. In [10]: import ex2 

3.模块的导入

除了 import关键字直接导入模块的形式,模块还有一些其他的导入方式,我们可以根据实际需要选择合适的方式导入模块。

模块的导入方式如表2-11所示。

表 2-11模块导入方式

导入模块时,Python会优先在当前程序的工作目录中寻找模块;如果找不到,则会去 Python系统的工作目录中寻找。路径的查找顺序可以用sys模块的变量sys.path查看。

默认情况下,模块会导入脚本中所有已定义的内容,这样做有可能导入了一些不需要的内容。为此,我们可以通过设置__all__变量来限制导入的内容。在 Python中,__all__变量可以用来控制模块导入的内容。

例如,在ex1中,假设我们只需要导入PI、my_sum,不需要w,可以在ex1.py中,令:

  1. __all__ = [PI, my_sum] 

这样,导入ex1时,我们就只会导入 PI和 my_sum两个部分了。

4. dir()函数

我们可以用 dir()函数查看一个模块中所包含的所有对象:

  1. In [11]: dir(ex2)   
  2. Out[11]: ['__name__', 'my_sum', 'PI'] 

如果不给定参数,dir()函数返回当前已定义的所有变量。

5.包

包(Package)是一个由多个模块组成的集合,用来管理多个模块。

一个Python包的基本结构如下:

  1. foo/  
  2.     __init__.py  
  3.     bar.py(定义了函数func)  
  4.     baz.py(定义了函数funz) 

foo是一个文件夹,其他的是文件。其中,__init__.py文件必不可少,它可以是一个空文件。可以通过调用import foo来导入__init__.py文件中的内容。

包内的两个子模块bar.py、baz.py可以通过这样的方式来调用:

  1. import foo.bar  
  2. from foo import baz  
  3. import foo.bar.func  
  4. from fun.baz import funz 

使用 from <package> import <item>的形式时,<item>既可以是一个子模块,也可以是模块中的一个函数或变量。

除了子模块,包内还可以含有子包。例如,foo是一个含有子包的Python包:

  1. foo/  
  2.     __init__.py  
  3.     format/  
  4.  
  5.    bar.py   
  6.    baz.py   
  7.    ...  
  8.  
  9.     helper/  
  10.    echo.py  
  11.    ... 

子包中的模块可以相互调用。假设我们在 foo/format文件夹中的 bar.py文件中,希望导入 foo包中其他的子模块或子包,可以使用以下方式:

  1. from . import baz   
  2. from .. import helper   
  3. from ..helper import echo 

其中,“.”代表当前文件夹,“..”代表当前文件夹的父文件夹。

在后文中,为了方便叙述,我们将包和模块统称为模块。

喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

网络技术应试辅导(三级)

本书根据教育部考试中心2004年最新发布的《全国计算机等级考试大纲》编写,针对计算机等级考试三级网络技术各方面的考点进行讲解和训练。本...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊