Python模块的编写和调用
2016-06-18 10:17
495 查看
之前根据具体的应用情景写过一些关于Python模块的文章
Python中的模块与包
Python中第三方模块的安装
Python中如何解决ImportError:No Module Named arcpy问题
今天需要讨论一下Python模块内容如何编写的问题。
譬如上面是一个实现基本四则运算的模块。
第1、2行是标准注释,第1行的注释
第4行是模块的文档注释,任何模块代码的第一个字符串都被当作是模块的文档注释。
第6行使用模块的
以上就是Python模块的标准文件模板,当然这些也可以不写,但还是建议按照标准格式构建模块。
接下来是模块的主要内容。首先需要
最后一部分代码
Python模块有很多属性和方法:
Python模块也是
模块直接运行的结果如下:
而被
什么?不知道自己写完模块怎么导入调用?看这里!
什么?这么多功能写到一个模块里面?当然,完全可以把它们写成Python包的形式。详见下一篇文章:Python包编写详解
(By XuZhiyuan 2016-06-18 10点 @Hohai Sunny)
Python中的模块与包
Python中第三方模块的安装
Python中如何解决ImportError:No Module Named arcpy问题
今天需要讨论一下Python模块内容如何编写的问题。
模块
Python将代码拆分为模块最初的目的是功能的独立,所以说模块提供的是某个独立的功能。作为函数式编程语言,Python模块的内容一般写为函数的形式。#!/user/bin/env python3 # -*- coding:utf-8 -*- 'doc of a test module' __author__ = 'XuZhiyuan' from functools import reduce def add(*args): return reduce(_add_two,args) def _add_two(x,y): return x + y def minus(x,y): return x - y def multi(*args): return reduce(_multi_two, args) def _multi_two(x,y): return x * y def divide(x,y): if y == 0: return None return x / y if __name__ == '__main__': print(add(*range(100))) print(minus(10,5)) print(multi(*range(1,10))) print(divide(10,0)) print(divide(10,5)) print(__name__)
譬如上面是一个实现基本四则运算的模块。
第1、2行是标准注释,第1行的注释
#!/user/bin/env python3使得这个模块可以直接在Unix/Linux/Mac上运行,第2行注释
# -*- coding:utf-8 -*-表示文件使用标准的utf-8编码。
第4行是模块的文档注释,任何模块代码的第一个字符串都被当作是模块的文档注释。
第6行使用模块的
__author__变量写入模块的作者。
以上就是Python模块的标准文件模板,当然这些也可以不写,但还是建议按照标准格式构建模块。
接下来是模块的主要内容。首先需要
import模块使用到的标准库,然后是一系列函数实现模块的方法。
最后一部分代码
if __name__ == '__main__'需要特别注意,这是什么意思呢?
Python模块有很多属性和方法:
>>> dir(module) ['__author__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_add_two', '_multi_two', 'add', 'divide', 'math', 'minus', 'multi', 'reduce']
Python模块也是
.py文件,也是可以被直接运行的,当模块被直接运行时,模块的
__name__属性值为
__main__,所以可以在直接运行时写入一些调试语句;当模块被
import载入使用时,
__name__属性为模块的名称,所以就会自动忽略那些调试语句。
模块直接运行的结果如下:
D:\>python module.py 4950 5 362880 None 2.0 __main__
而被
import导入的使用方法如下:
>>> import module >>> module <module 'module' from 'D:\\module.py'> >>> module.add(*range(100)) 4950
什么?不知道自己写完模块怎么导入调用?看这里!
什么?这么多功能写到一个模块里面?当然,完全可以把它们写成Python包的形式。详见下一篇文章:Python包编写详解
(By XuZhiyuan 2016-06-18 10点 @Hohai Sunny)
相关文章推荐
- Python动态类型的学习---引用的理解
- Python3写爬虫(四)多线程实现数据爬取
- 垃圾邮件过滤器 python简单实现
- 下载并遍历 names.txt 文件,输出长度最长的回文人名。
- install and upgrade scrapy
- Scrapy的架构介绍
- Centos6 编译安装Python
- 使用Python生成Excel格式的图片
- 让Python文件也可以当bat文件运行
- [Python]推算数独
- Python中zip()函数用法举例
- Python中map()函数浅析
- Python将excel导入到mysql中
- Python在CAM软件Genesis2000中的应用
- 使用Shiboken为C++和Qt库创建Python绑定
- FREEBASIC 编译可被python调用的dll函数示例
- Python 七步捉虫法