python进阶教程之模块(module)介绍


Posted in Python onAugust 30, 2014

我们之前看到了函数和对象。从本质上来说,它们都是为了更好的组织已经有的程序,以方便重复利用。

模块(module)也是为了同样的目的。在Python中,一个.py文件就构成一个模块。通过模块,你可以调用其它文件中的程序。

引入模块

我们先写一个first.py文件,内容如下:

def laugh():

    print 'HaHaHaHa'

再写一个second.py,并引入first中的程序:

import first
for i in range(10):

    first.laugh()

在second.py中,我们使用了first.py中定义的laugh()函数。

引入模块后,可以通过模块.对象的方式来调用引入模块中的某个对象。上面例子中,first为引入的模块,laugh()是我们所引入的对象。

Python中还有其它的引入方式

import a as b             # 引入模块a,并将模块a重命名为b
from a import function1   # 从模块a中引入function1对象。调用a中对象时,我们不用再说明模块,即直接使用function1,而不是a.function1。
from a import *           # 从模块a中引入所有对象。调用a中对象时,我们不用再说明模块,即直接使用对象,而不是a.对象。

这些引用方式,可以方便后面的程序书写。

搜索路径

Python会在以下路径中搜索它想要寻找的模块:

程序所在的文件夹
标准库的安装路径
操作系统环境变量PYTHONPATH所包含的路径

如果你有自定义的模块,或者下载的模块,可以根据情况放在相应的路径,以便Python可以找到。

模块包

可以将功能相似的模块放在同一个文件夹(比如说this_dir)中,构成一个模块包。通过

import this_dir.module

引入this_dir文件夹中的module模块。

该文件夹中必须包含一个__init__.py的文件,提醒Python,该文件夹为一个模块包。__init__.py可以是一个空文件。

总结

import module

module.object

__init__.py

Python 相关文章推荐
python如何获取服务器硬件信息
May 11 Python
python中Pycharm 输出中文或打印中文乱码现象的解决办法
Jun 16 Python
用python写扫雷游戏实例代码分享
May 27 Python
Python模拟自动存取款机的查询、存取款、修改密码等操作
Sep 02 Python
Python人脸识别第三方库face_recognition接口说明文档
May 03 Python
Python3.5 + sklearn利用SVM自动识别字母验证码方法示例
May 10 Python
numpy中三维数组中加入元素后的位置详解
Nov 28 Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧装饰器信号与槽详细使用方法与实例
Mar 06 Python
Python 跨.py文件调用自定义函数说明
Jun 01 Python
python re的findall和finditer的区别详解
Nov 15 Python
七个Python必备的GUI库
Apr 27 Python
pytorch中Schedule与warmup_steps的用法说明
May 24 Python
Python中的闭包实例详解
Aug 29 #Python
python进阶教程之文本文件的读取和写入
Aug 29 #Python
Python中__call__用法实例
Aug 29 #Python
python进阶教程之词典、字典、dict
Aug 29 #Python
python字符串排序方法
Aug 29 #Python
python基础教程之对象和类的实际运用
Aug 29 #Python
python基础教程之面向对象的一些概念
Aug 29 #Python
You might like
PHP 杂谈《重构-改善既有代码的设计》之一 重新组织你的函数
2012/04/09 PHP
php分页函数示例代码分享
2014/02/24 PHP
PHP中shuffle数组值随便排序函数用法
2014/11/21 PHP
Thinkphp5框架使用validate实现验证功能的方法
2019/08/27 PHP
解决laravel session失效的问题
2019/10/14 PHP
屏蔽相应键盘按钮操作
2014/03/10 Javascript
JavaScript中eval函数的问题
2016/01/31 Javascript
JS获取时间的相关函数及时间戳与时间日期之间的转换
2016/02/04 Javascript
js实现的下拉框二级联动效果
2016/04/30 Javascript
Javascript中的 “&” 和 “|” 详解
2017/02/02 Javascript
JS实现点击循环切换显示内容的方法
2017/10/19 Javascript
vue路由跳转时判断用户是否登录功能的实现
2017/10/26 Javascript
mongoose设置unique不生效问题的解决及如何移除unique的限制
2017/11/07 Javascript
深入浅析JS中的严格模式
2018/06/04 Javascript
Vue3.0结合bootstrap创建多页面应用
2019/05/28 Javascript
vue 自动化路由实现代码
2019/09/03 Javascript
详解element-ui级联菜单(城市三级联动菜单)和回显问题
2019/10/02 Javascript
公众号SVG动画交互实战代码
2020/05/31 Javascript
Vue实现购物小球抛物线的方法实例
2020/11/22 Vue.js
Python文件及目录操作实例详解
2015/06/04 Python
Python数据结构与算法之常见的分配排序法示例【桶排序与基数排序】
2017/12/15 Python
python实现linux下抓包并存库功能
2018/07/18 Python
python 提取key 为中文的json 串方法
2018/12/31 Python
Python实现根据日期获取当天凌晨时间戳的方法示例
2019/04/09 Python
python日期相关操作实例小结
2019/06/24 Python
使用python写的opencv实时监测和解析二维码和条形码
2019/08/14 Python
将python文件打包exe独立运行程序方法详解
2020/02/12 Python
吃空饷专项治理工作实施方案
2014/03/04 职场文书
舞蹈毕业生的自我评价
2014/03/05 职场文书
小学数学国培感言
2014/03/10 职场文书
入党介绍人考察意见
2015/06/01 职场文书
宾馆客房管理制度
2015/08/06 职场文书
小学英语教师研修感悟
2015/11/18 职场文书
社区干部培训心得体会
2016/01/06 职场文书
Redis如何一键部署脚本
2021/04/12 Redis
详解MySQL中的主键与事务
2021/05/27 MySQL