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实现朴素贝叶斯分类器的方法详解
Jul 04 Python
我喜欢你 抖音表白程序python版
Apr 07 Python
python队列Queue的详解
May 10 Python
tensorflow使用指定gpu的方法
Feb 04 Python
深入浅析Python 命令行模块 Click
Mar 11 Python
python deque模块简单使用代码实例
Mar 12 Python
python中JWT用户认证的实现
May 18 Python
使用Python FastAPI构建Web服务的实现
Jun 08 Python
解决Keras 自定义层时遇到版本的问题
Jun 16 Python
浅谈sklearn中predict与predict_proba区别
Jun 28 Python
scrapy redis配置文件setting参数详解
Nov 18 Python
LeetCode189轮转数组python示例
Aug 05 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文件操作之获取目录下文件与计算相对路径的方法
2016/01/08 PHP
php实现简单的守护进程创建、开启与关闭操作
2019/08/13 PHP
Laravel Eloquent分表方法并使用模型关联的实现
2019/11/25 PHP
js 提交和设置表单的值
2008/12/19 Javascript
收集的一些Array及String原型对象的扩展实现代码
2010/12/05 Javascript
原生Js实现元素渐隐/渐现(原理为修改元素的css透明度)
2013/06/24 Javascript
简单常用的幻灯片播放实现代码
2013/09/25 Javascript
javascript Event对象详解及使用示例
2013/11/22 Javascript
jQuery的load()方法及其回调函数用法实例
2015/03/25 Javascript
浅谈javascript语法和定时函数
2015/05/03 Javascript
Javascript闭包实例详解
2015/11/29 Javascript
使用jQuery的load方法设计动态加载及解决被加载页面js失效问题
2017/03/01 Javascript
vue的mixins属性详解
2018/03/14 Javascript
angularjs结合html5实现拖拽功能
2018/06/25 Javascript
vue中$set的使用(结合在实际应用中遇到的坑)
2018/07/10 Javascript
bootstrapTable+ajax加载数据 refresh更新数据
2018/08/31 Javascript
Vue3 中的数据侦测的实现
2019/10/09 Javascript
[02:18]《我与DAC》之工作人员:为了热爱DOTA2的玩家们
2018/03/28 DOTA
[34:10]Secret vs VG 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.24
2019/09/10 DOTA
python运行时间的几种方法
2016/06/17 Python
Python实现八大排序算法
2016/08/13 Python
python实现简单五子棋游戏
2019/06/18 Python
详解win10下pytorch-gpu安装以及CUDA详细安装过程
2021/01/28 Python
浅析几个CSS3常用功能的写法
2014/06/05 HTML / CSS
西班牙床垫网上商店:Colchones.es
2018/05/06 全球购物
加州风格的游泳和沙滩装品牌:Cupshe
2019/06/10 全球购物
Kingsoft金山公司C/C++笔试题
2016/05/10 面试题
医学类导师推荐信范文
2013/11/19 职场文书
消防安全责任书
2014/04/14 职场文书
教师师德师风自我剖析材料
2014/09/29 职场文书
2015教师节师德演讲稿
2015/03/19 职场文书
公司车辆维修管理制度
2015/08/05 职场文书
Nginx内网单机反向代理的实现
2021/11/07 Servers
pd.drop_duplicates删除重复行的方法实现
2022/06/16 Python
Redis唯一ID生成器的实现
2022/07/07 Redis
Win11 Build 22000.829更新补丁KB5015882发布(附更新修复内容汇总)
2022/07/15 数码科技