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的Django框架中的静态资源管理器django-pipeline
Apr 25 Python
Python的shutil模块中文件的复制操作函数详解
Jul 05 Python
Python 含参构造函数实例详解
May 25 Python
python解决js文件utf-8编码乱码问题(推荐)
May 02 Python
Python Numpy库安装与基本操作示例
Jan 08 Python
python实现飞机大战游戏
Oct 26 Python
python的依赖管理的实现
May 14 Python
深入了解python中元类的相关知识
Aug 29 Python
Python从入门到精通之环境搭建教程图解
Sep 26 Python
django 数据库返回queryset实现封装为字典
May 19 Python
Python3如何使用tabulate打印数据
Sep 25 Python
python爬虫selenium模块详解
Mar 30 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实现多进程并行操作的详解(可做守护进程)
2013/06/18 PHP
laravel5.1 ajax post 传值_token示例
2019/10/24 PHP
jQuery 1.0.2
2006/10/11 Javascript
JavaScript入门教程(12) js对象化编程
2009/01/31 Javascript
正负小数点后两位浮点数实现原理及代码
2013/09/06 Javascript
input链接页面、打开新网页等等的具体实现
2013/12/30 Javascript
鼠标悬浮显示二级菜单效果的jquery实现
2014/10/29 Javascript
解决js下referer兼容各大浏览器的方法
2014/11/03 Javascript
jQuery Mobile操作HTML5的常用函数总结
2016/05/17 Javascript
vue自定义指令实现v-tap插件
2016/11/03 Javascript
基于JavaScript实现全选、不选和反选效果
2017/02/15 Javascript
jQuery.Ajax()的data参数类型详解
2017/07/23 jQuery
简单实现js进度条加载效果
2020/03/25 Javascript
vue router demo详解
2017/10/13 Javascript
IE9 elementUI文件上传的问题解决
2018/10/17 Javascript
微信小程序实现顶部下拉菜单栏
2018/11/04 Javascript
JavaScript数组特性与实践应用深入详解
2018/12/30 Javascript
原生js实现抽奖小游戏
2019/06/27 Javascript
策略模式实现 Vue 动态表单验证的方法
2019/09/16 Javascript
vue 开发之路由配置方法详解
2019/12/02 Javascript
JavaScript 判断数据类型的4种方法
2020/09/11 Javascript
Python 详解基本语法_函数_返回值
2017/01/22 Python
Pyqt5自适应布局实例
2019/12/13 Python
Python面向对象封装操作案例详解
2019/12/31 Python
PyTorch中torch.tensor与torch.Tensor的区别详解
2020/05/18 Python
公司活动策划方案
2014/01/13 职场文书
党的群众路线教育实践活动心得体会
2014/03/03 职场文书
房地产资料员岗位职责
2014/07/02 职场文书
2014银行授权委托书样本
2014/10/04 职场文书
2014年纳税评估工作总结
2014/12/23 职场文书
CAD实训总结范文
2015/08/03 职场文书
postgresql 删除重复数据案例详解
2021/08/02 PostgreSQL
Oracle配置dblink访问PostgreSQL的操作方法
2022/03/21 PostgreSQL
spring注解 @PropertySource配置数据源全流程
2022/03/25 Java/Android
根德5570型九灯四波段立体声收音机是电子管收音机的楷模 ? 再论5570
2022/04/05 无线电
Fluentd搭建日志收集服务
2022/09/23 Servers