Python创建模块及模块导入的方法


Posted in Python onMay 27, 2015

本文实例讲述了Python创建模块及模块导入的方法。分享给大家供大家参考。具体分析如下:

python学习手册中写道:

定义模块,只要使用文本编辑器,把一些python代码输入到文本中,然后以.py为后缀名进行保存,任何此类文件都会被认为是python模块。

比如说,下面的代码输入到一个文件中,就可以看作是一个模块:

def printme(var):
  print var
if __name__ == '__main__':
    printme(1)

假设说输入到a.py中,那么import a就可以把这个模块导入。

然后可执行a.printme(3),屏幕即可打印出3:

>>> a.printme(3)
3
>>>

一个模块顶层定义的变量,会自动变成模块的属性。例如:

data=[1,2,3]
def printme(var):
  print var
if __name__ == '__main__':
    printme(1)

data变量就是模块的一个属性。其实printme也是一个属性,只不过是一个函数罢了。

引入模块示例如下:(假定此时data=[1,2,3]未定义)

>>> import a
>>> a.data

Traceback (most recent call last):
 File "<pyshell#1>", line 1, in <module>
  a.data
AttributeError: 'module' object has no attribute 'data'
>>> reload(a)
<module 'a' from 'C:/py\a.pyc'>
>>> a.data

Traceback (most recent call last):
 File "<pyshell#3>", line 1, in <module>
  a.data
AttributeError: 'module' object has no attribute 'data'
>>>

从上述提示可以看出data属性未定义,此时再在a.py文件中定义data=[1,2,3],重新加载a模块,并输出data属性:

>>> reload(a)
<module 'a' from 'C:/py\a.py'>
>>> a.data
[1, 2, 3]
>>>

这里的reload函数可以重新加载一个模块。如果在模块代码中更改了,那么需要重新加载。

上面a.data,就是访问模块中的属性。

上面的例子是导入一个文件作为一个模块。

其实python的模块导入还有更丰富的内容。

除了模块名之外,python也可以导入指定目录路径。python代码的目录就称为包。因此,这类导入就称为包导入。事实上,包导入是把计算机上的目录变成python的一个命名空间。而属性就是目录中包含的子目录或者是模块文件。

看下面例子:

在我的桌面上有一个aa文件夹,里面有bb文件夹,bb里面有a.py这个文件。

那么在aa和bb文件夹中分别放置一个__init__.py,之后,在命令行中import aa.bb.a,就可以导入模块a了。

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
python中使用mysql数据库详细介绍
Mar 27 Python
简单介绍Python的轻便web框架Bottle
Apr 08 Python
Python制作简单的网页爬虫
Nov 22 Python
Python 3.x读写csv文件中数字的方法示例
Aug 29 Python
Python爬虫实例_城市公交网络站点数据的爬取方法
Jan 10 Python
TensorFlow平台下Python实现神经网络
Mar 10 Python
Python实现的列表排序、反转操作示例
Mar 13 Python
Python基于wordcloud及jieba实现中国地图词云图
Jun 09 Python
解决Pycharm双击图标启动不了的问题(JetBrains全家桶通用)
Aug 07 Python
python 中的命名空间,你真的了解吗?
Aug 19 Python
python绘图pyecharts+pandas的使用详解
Dec 13 Python
python switch 实现多分支选择功能
Dec 21 Python
Python类的用法实例浅析
May 27 #Python
Python socket编程实例详解
May 27 #Python
Python简单删除目录下文件以及文件夹的方法
May 27 #Python
python解析xml文件实例分析
May 27 #Python
Python定时执行之Timer用法示例
May 27 #Python
python定时执行指定函数的方法
May 27 #Python
python统计文本字符串里单词出现频率的方法
May 26 #Python
You might like
php下利用curl判断远程文件是否存在的实现代码
2011/10/08 PHP
如何使用php判断服务器是否是HTTPS连接
2013/07/05 PHP
PHP随机生成唯一HASH值自定义函数
2015/04/20 PHP
PHP全功能无变形图片裁剪操作类与用法示例
2017/01/10 PHP
用jscript启动sqlserver
2007/06/21 Javascript
javascript YUI 读码日记之 YAHOO.util.Dom - Part.4
2008/03/22 Javascript
javascript跨域的4种方法和原理详解
2014/04/08 Javascript
判断复选框是否被选中的两种方法
2014/06/04 Javascript
详解javascript函数的参数
2015/11/10 Javascript
举例讲解jQuery中可见性过滤选择器的使用
2016/04/18 Javascript
js 将图片连接转换成base64格式的简单实例
2016/08/10 Javascript
深入理解JavaScript中的for循环
2017/02/07 Javascript
微信小程序--onShareAppMessage分享参数用处(页面分享)
2017/04/18 Javascript
纯原生js实现贪吃蛇游戏
2020/04/16 Javascript
jQuery自动或手动图片切换效果
2017/10/11 jQuery
npm 下载指定版本的组件方法
2018/05/17 Javascript
Vue CLI3搭建的项目中路径相关问题的解决
2018/09/17 Javascript
vuex的module模块用法示例
2018/11/12 Javascript
如何使用less实现随机下雪动画详解
2019/01/02 Javascript
Vue中axios拦截器如何单独配置token
2019/12/27 Javascript
原生javascript实现类似vue的数据绑定功能示例【观察者模式】
2020/02/24 Javascript
[39:52]2018DOTA2亚洲邀请赛 4.3 突围赛 EG vs Newbee 第一场
2018/04/04 DOTA
[12:29]2018国际邀请赛 开幕秀
2018/08/22 DOTA
json跨域调用python的方法详解
2017/01/11 Python
python批量赋值操作实例
2018/10/22 Python
pyhanlp安装介绍和简单应用
2019/02/22 Python
python使用Qt界面以及逻辑实现方法
2019/07/10 Python
Python获取时间范围内日期列表和周列表的函数
2019/08/05 Python
python爬虫 批量下载zabbix文档代码实例
2019/08/21 Python
python滑块验证码的破解实现
2019/11/10 Python
加拿大女包品牌:Matt & Nat
2017/05/12 全球购物
企业内部培训方案
2014/02/04 职场文书
提拔干部考察材料
2014/05/26 职场文书
公安民警正风肃纪剖析材料
2014/10/10 职场文书
动作冒险《Hell Is Us》将采用虚幻5 消灭怪物探索王国
2022/04/13 其他游戏
Java8 Stream API 提供了一种高效且易于使用的处理数据的方式
2022/04/13 Java/Android