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 相关文章推荐
Python3实现购物车功能
Apr 18 Python
python贪吃蛇游戏代码
Apr 18 Python
python高斯分布概率密度函数的使用详解
Jul 10 Python
Python嵌套函数,作用域与偏函数用法实例分析
Dec 26 Python
Keras使用tensorboard显示训练过程的实例
Feb 15 Python
实现ECharts双Y轴左右刻度线一致的例子
May 16 Python
浅谈Python 参数与变量
Jun 20 Python
基于opencv实现简单画板功能
Aug 02 Python
Django多数据库联用实现方法解析
Nov 12 Python
python爬取天气数据的实例详解
Nov 20 Python
全网最全python库selenium自动化使用详细教程
Jan 12 Python
Python中三种花式打印的示例详解
Mar 19 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安装为Apache DSO
2006/10/09 PHP
非常实用的PHP常用函数汇总
2014/12/17 PHP
使用PHP similar text计算两个字符串相似度
2015/11/06 PHP
PHP+Ajax 检测网络是否正常实例详解
2016/12/16 PHP
php lcg_value与mt_rand生成0~1随机小数的效果对比分析
2017/04/05 PHP
如何在PHP中使用数组
2020/06/09 PHP
减少访问DOM的次数提升javascript性能
2014/02/24 Javascript
ff chrome和ie下全局动态定位的异同及全局高度的取法
2014/06/30 Javascript
JavaScript实现数字数组正序排列的方法
2015/04/06 Javascript
Javascript 计算字符串在localStorage中所占字节数
2015/10/21 Javascript
javascript数据结构之二叉搜索树实现方法
2015/11/25 Javascript
Vue.js开发环境搭建
2016/11/10 Javascript
原生Aajax 和jQuery Ajax 写法个人总结
2017/03/24 jQuery
node使用UEditor富文本编辑器的方法实例
2017/07/11 Javascript
基于jquery实现左右上下移动效果
2018/05/02 jQuery
NodeJS 中Stream 的基本使用
2018/07/30 NodeJs
使用Vue.js 和Chart.js制作绚丽多彩的图表
2019/06/15 Javascript
vue回到顶部监听滚动事件详解
2019/08/02 Javascript
封装Vue Element的table表格组件的示例详解
2020/08/19 Javascript
关于Node.js中频繁修改代码重启服务器的问题
2020/10/15 Javascript
design vue 表格开启列排序的操作
2020/10/28 Javascript
Python中easy_install 和 pip 的安装及使用
2017/06/05 Python
tensorflow学习笔记之mnist的卷积神经网络实例
2018/04/15 Python
Python中的取模运算方法
2018/11/10 Python
Python根据服务获取端口号的方法
2019/09/25 Python
python如何修改文件时间属性
2021/02/05 Python
卫校毕业生自我鉴定
2013/10/31 职场文书
策划助理岗位职责
2013/11/18 职场文书
交通事故赔偿协议书
2014/10/16 职场文书
2014年小学图书室工作总结
2014/12/09 职场文书
胡雪岩故居导游词
2015/02/06 职场文书
部队2015年终工作总结
2015/04/02 职场文书
聘任协议书(挂靠)
2015/09/21 职场文书
MySQL数据库压缩版本安装与配置详细教程
2021/05/21 MySQL
postman中form-data、x-www-form-urlencoded、raw、binary的区别介绍
2022/01/18 HTML / CSS
Python用any()函数检查字符串中的字母以及如何使用all()函数
2022/04/14 Python