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 除法小技巧
Sep 06 Python
python中安装模块包版本冲突问题的解决
May 02 Python
使用python编写简单的小程序编译成exe跑在win10上
Jan 15 Python
详细解读tornado协程(coroutine)原理
Jan 15 Python
python实现隐马尔科夫模型HMM
Mar 25 Python
用 Python 连接 MySQL 的几种方式详解
Apr 04 Python
python读取excel指定列数据并写入到新的excel方法
Jul 10 Python
Python常见内置高效率函数用法示例
Jul 31 Python
50行Python代码获取高考志愿信息的实现方法
Jul 23 Python
python用pip install时安装失败的一系列问题及解决方法
Feb 24 Python
基于PyQT实现区分左键双击和单击
May 19 Python
详解pandas映射与数据转换
Jan 22 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
用mysql内存表来代替php session的类
2009/02/01 PHP
php 判断访客是否为搜索引擎蜘蛛的函数代码
2011/07/29 PHP
PHP原生函数一定好吗?
2014/12/08 PHP
详解WordPress中提醒安装插件以及隐藏插件的功能实现
2015/12/25 PHP
laravel5实现微信第三方登录功能
2018/12/06 PHP
javascript+css 网页每次加载不同样式的实现方法
2009/12/27 Javascript
jquery 面包屑导航 具体实现
2013/06/05 Javascript
JS获取几种URL地址的方法小结
2014/02/26 Javascript
JavaScript中的eval()函数使用介绍
2014/12/31 Javascript
jQuery判断对象是否存在的方法
2015/02/05 Javascript
js的各种排序算法实现(总结)
2016/07/23 Javascript
通过BootStrap-select插件 js jQuery控制select属性变化
2017/01/03 Javascript
详解webpack介绍&安装&常用命令
2017/06/29 Javascript
原生JS与jQuery编写简单选项卡
2017/10/30 jQuery
windows下更新npm和node的方法
2017/11/30 Javascript
详解vue-cli官方脚手架配置
2018/07/20 Javascript
详解webpack-dev-server使用方法
2018/09/14 Javascript
点击按钮弹出模态框的一系列操作代码实例
2019/03/29 Javascript
easyUI 实现的后台分页与前台显示功能示例
2020/06/01 Javascript
Python爬虫框架Scrapy安装使用步骤
2014/04/01 Python
详解Pytorch 使用Pytorch拟合多项式(多项式回归)
2018/05/24 Python
基于OpenCV python3实现证件照换背景的方法
2019/03/22 Python
python实现数据分析与建模
2019/07/11 Python
keras 多任务多loss实例
2020/06/22 Python
css3实例教程 一款纯css3实现的环形导航菜单
2014/10/20 HTML / CSS
香蕉共和国Banana Republic官网:美国GAP旗下偏贵族风格服饰品牌
2016/11/21 全球购物
英国儿童图书网站:Scholastic
2017/03/26 全球购物
几个数据库方面的面试题
2016/07/01 面试题
大二学期个人自我评价
2014/01/13 职场文书
高中生职业生涯规划书
2014/02/24 职场文书
汽车机修工岗位职责
2014/03/06 职场文书
个人评语大全
2014/05/04 职场文书
红领巾广播站广播稿(3篇)
2014/09/20 职场文书
太空授课观后感
2015/06/17 职场文书
2015年车间管理工作总结
2015/07/23 职场文书
Kubernetes控制节点的部署
2022/04/01 Servers