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 import用法以及与from...import的区别
May 28 Python
Python基于有道实现英汉字典功能
Jul 25 Python
Python 迭代器与生成器实例详解
May 18 Python
Python输出由1,2,3,4组成的互不相同且无重复的三位数
Feb 01 Python
python opencv设置摄像头分辨率以及各个参数的方法
Apr 02 Python
Python Logging 日志记录入门学习
Jun 02 Python
pandas筛选某列出现编码错误的解决方法
Nov 07 Python
详解django中url路由配置及渲染方式
Feb 25 Python
Python 存储字符串时节省空间的方法
Apr 23 Python
Python3实现汉语转换为汉语拼音
Jul 08 Python
Python上下文管理器用法及实例解析
Nov 11 Python
基于matplotlib中ion()和ioff()的使用详解
Jun 16 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
curl不使用文件存取cookie php使用curl获取cookie示例
2014/01/26 PHP
浅析PHP编程中10个最常见的错误
2014/08/08 PHP
php获得文件大小和文件创建时间的方法
2015/03/13 PHP
sina的lightbox效果。
2007/01/09 Javascript
javascript模拟map输出与去除重复项的方法
2015/02/09 Javascript
javascript中动态函数用法实例分析
2015/05/14 Javascript
jquery控制页面部分刷新的方法
2015/06/24 Javascript
AngularJS入门心得之directive和controller通信过程
2016/01/25 Javascript
JavaScript实现获取某个元素相邻兄弟节点的prev与next方法
2016/01/25 Javascript
Javascript必知必会(四)js类型转换
2016/06/08 Javascript
jQuery ajax 当async为false时解决同步操作失败的问题
2016/11/18 Javascript
图片懒加载插件实例分享(含解析)
2017/01/09 Javascript
React Native中Navigator的使用方法示例
2017/10/13 Javascript
BootStrap TreeView使用实例详解
2017/11/01 Javascript
angular2实现统一的http请求头方法
2018/08/13 Javascript
vue项目中使用Svg的方法
2018/10/24 Javascript
用element的upload组件实现多图片上传和压缩的示例代码
2019/02/12 Javascript
vue使用el-upload上传文件及Feign服务间传递文件的方法
2019/03/15 Javascript
Laravel admin实现消息提醒、播放音频功能
2019/07/10 Javascript
使用Vant完成Dialog弹框案例
2020/11/11 Javascript
python 获取本机ip地址的两个方法
2013/02/25 Python
python不换行之end=与逗号的意思及用途
2017/11/21 Python
Django 表单模型选择框如何使用分组
2019/05/16 Python
Python实例方法、类方法、静态方法区别详解
2020/09/05 Python
详解java调用python的几种用法(看这篇就够了)
2020/12/10 Python
英国在线滑雪板和冲浪商店:The Board Basement
2020/01/11 全球购物
网络工程与软件技术毕业生自荐信
2013/09/24 职场文书
我的五年职业生涯规划
2014/01/23 职场文书
《临死前的严监生》教学反思
2014/02/13 职场文书
经理秘书求职自荐信范文
2014/03/23 职场文书
护理专科毕业自荐信范文
2014/04/21 职场文书
大学生社团活动总结
2014/04/26 职场文书
学校领导班子群众路线整改措施
2014/09/16 职场文书
服务员岗位职责
2015/02/03 职场文书
成事在人观后感
2015/06/16 职场文书
Python GUI编程之tkinter 关于 ttkbootstrap 的使用详解
2022/03/03 Python