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 (1)
Oct 31 Python
Python常用模块用法分析
Sep 08 Python
Python内置函数OCT详解
Nov 09 Python
Pandas实现数据类型转换的一些小技巧汇总
May 07 Python
详解Django+Uwsgi+Nginx 实现生产环境部署
Nov 06 Python
Python可迭代对象操作示例
May 07 Python
Python实现图像去噪方式(中值去噪和均值去噪)
Dec 18 Python
Django 拼接两个queryset 或是两个不可以相加的对象实例
Mar 28 Python
pyMySQL SQL语句传参问题,单个参数或多个参数说明
Jun 06 Python
python怎么删除缓存文件
Jul 19 Python
浅谈python 类方法/静态方法
Sep 18 Python
python正则表达式re.match()匹配多个字符方法的实现
Jan 27 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
音乐朗读剧《MARS RED》2021年TV动画化决定!
2020/03/06 日漫
PHP获取QQ达人QQ信息的方法
2015/03/05 PHP
PHP获取用户访问IP地址的5种方法
2016/05/16 PHP
PHP实现字母数字混合验证码功能
2019/07/11 PHP
Yii框架实现对数据库的CURD操作示例
2019/09/03 PHP
window.location.reload()方法刷新页面弹出要再次显示该网页对话框
2013/04/24 Javascript
鼠标滚轮改变图片大小的示例代码
2013/11/20 Javascript
Express实现前端后端通信上传图片之存储数据库(mysql)傻瓜式教程(一)
2015/12/10 Javascript
简单的JS时钟实例讲解
2016/01/13 Javascript
node.js实现博客小爬虫的实例代码
2016/10/08 Javascript
jQuery实现碰到边缘反弹的动画效果
2018/02/24 jQuery
React为 Vue 引入容器组件和展示组件的教程详解
2018/05/03 Javascript
JavaScript实现计算圆周率到小数点后100位的方法示例
2018/05/08 Javascript
Vue中使用方法、计算属性或观察者的方法实例详解
2018/10/31 Javascript
详解Express笔记之动态渲染HTML(新手入坑)
2018/12/13 Javascript
使用preload预加载页面资源时注意事项
2020/02/03 Javascript
Node.js+Vue脚手架环境搭建的方法步骤
2020/03/08 Javascript
简单了解JavaScript作用域
2020/07/31 Javascript
JavaScript Html实现移动端红包雨功能页面
2021/01/10 Javascript
[03:12]完美世界DOTA2联赛PWL DAY7集锦
2020/11/06 DOTA
Python 对象中的数据类型
2017/05/13 Python
Python实现基于多线程、多用户的FTP服务器与客户端功能完整实例
2017/08/18 Python
python3学习笔记之多进程分布式小例子
2018/02/13 Python
python多个模块py文件的数据共享实例
2019/01/11 Python
Python实现简单的列表冒泡排序和反转列表操作示例
2019/07/10 Python
pycharm设置鼠标悬停查看方法设置
2019/07/29 Python
最新PyCharm从安装到PyCharm永久激活再到PyCharm官方中文汉化详细教程
2020/11/17 Python
BeautifulSoup中find和find_all的使用详解
2020/12/07 Python
html table呈现个人简历以及单元格宽度失效的问题解决
2021/01/22 HTML / CSS
世界闻名的衬衫制造商:Savile Row Company
2018/07/30 全球购物
中海讯通笔试题
2015/09/15 面试题
结婚典礼证婚词
2014/01/08 职场文书
2015年三年级班主任工作总结
2015/05/21 职场文书
为自己工作观后感
2015/06/11 职场文书
python数据可视化使用pyfinance分析证券收益示例详解
2021/11/20 Python
SpringBoot详解自定义Stater的应用
2022/07/15 Java/Android