1.Introduction

前面已经学习了如何在的序中定义函数而重用代码。如果想要在其他程序中重用很多函数,那么该如何编写程序呢?答案是使用模块。模块就是一个包含所有定义的函数和变量的文件。为了在其他程序中重用模块,模块的文件名必须以.py为扩展名。
例如,使用sys模块:
#using_sys.py
import sys;
print 'the Command and Line arguments are :';
for i in sys.argv:print i;print '\n\n the python path is :',sys.path,'\n';


这是如何工作的?

首先,利用import语句输入sys模块,这告诉Python,我们想要使用这个模块。sys模块包含了与Python解释器和它的环境有关的函数。

2.字节编译的.pyc文件

输入一个模块相对来说是一个比较费时的事情,所以Python做了一些技巧,以便使输入模块更快一些。一种方法是创建字节编译的文件,这些文件以*.pyc作为扩展名。字节编译的文件与Python变换程序的中间状态有关。当下次在别的程序输入这个模块的时候,*.pyc文件是十分有用的,速度上就会快得多。因为一部分输入模块所需的处理已经完成了。另外,字节编译的文件也是与平台无关的

3.from...import语句

如果想要直接输入argv变量到程序中(避免在每次使用它时打sys.),那么可以使用from sys import argv语句。如果想要输入所有sys模块使用的名字,那么可以使用from sys import *语句。这对于所有模块都适用。一般说来,应该避免使用from..import而使用import语句,因为这样可以使你的程序更加易读,也可以避免名称的冲突。

4.模块的__name__

每个模块都有一个名称,在模块中可以通过语句来找出模块的名称。这在一个场合特别有用,就如前面所提到的,当一个模块被第一次输入的时候,这个模块的主块将被运行。假如我们只想在程序本身被使用的时候运行主块,而在它被别的模块输入的时候不运行主块,该怎么做呢?这可以通过模块的__name__属性完成。
#using__name__.py
if __name__ == '__main__':print 'This program is being run by itself';
else:print 'I am being imported from another module';

5.Writing custom module

其实每一个Python程序就是一个模块。

#mymodule.py
def sayHello():print 'HellowtheWorld!';
version = '0.1';
#end of mymodule.py

上面是一个模块的例子。它与普通的Python程序相比并没有什么特别之处。如何在其他的Python程序中使用这个模块呢?

#mymodule_demo.py
import mymodule;
mymodule.sayHello();
print 'version', mymodule.version;


Python采用‘.’来调用其他模块中的函数与成员变量。

上面的程序我们也可以使用from...import语法实现:

#mymodule_demos.py
from mymodule import sayHello,version;
sayHello();
print 'version',version;

python3:module相关推荐

  1. python3 module 'pexpect' has no attribute 'spawn' 解决方法

    python 在使用 pexpect 的时候,报了 module 'pexpect' has no attribute 'spawn' 并不是"pexpect"没有"sp ...

  2. C++ CMake 使用 Python3

    C++ CMake 使用 Python3 CMakeListst 设置 # 如果使用的是非系统目录下的 Python 可以通过指定 Python3_ROOT_DIR 改变查找路径 # set(Pyth ...

  3. python nginx部署_Python 应用 uWSGI + Nginx 部署

    新建一个 Django 应用部署 •使用 py 文件启动 uWSGI def application(env, start_response):start_response('200 ok', [(' ...

  4. Python 应用 uWSGI + Nginx 部署

    新建一个 Django 应用部署 •使用 py 文件启动 uWSGI def application(env, start_response): start_response('200 ok', [( ...

  5. linux安装bash工具包,Linux 资源监视工具BashTop的安装和使用

    使用BashTop,您还可以对进程进行排序,以及轻松地在各种排序选项之间切换.此外,您可以将SIGKILL,SIGTERM和SIGINT发送到所需的进程. BashTop可以安装在Linux,macO ...

  6. Python二进制数据处理

    目录 前言 str与bytes base64模块 struct模块 参考链接 前言 本文所涉及到的代码均基于python 3.x. str与bytes 在写代码时,我们经常会涉及到字符串的处理,但字符 ...

  7. PyAutoFEP Tutorial--基于Gromacs

    PyAutoFEP 自由能微扰计算–基于Gromacs 简介 注意:以下教程假定读者熟悉分子动力学 (MD) 和自由能微扰 (FEP) 理论.此外,了解 GROMACS 工具.拓扑和输入文件也很有用. ...

  8. ROCm环境下安装tvm

    ROCm环境下安装tvm主要是为了构建libtvm.so.libtvm_runtime.so共享库 配置cmake环境,建议3.14版本以上 配置python环境,建议python3版本以上 配置gc ...

  9. 使用 uWSGI 和 Nginx 部署 Flask 应用程序

    自从我第一次浪漫地接触 Python 已经过去了大约十年.这部特别的浪漫喜剧不知何故完全错过了"一见钟情"的比喻--我发现学习 Python 的过程令人愤怒.我担心的不是语言本身, ...

最新文章

  1. 网易2022秋季校园招聘-通用技术A卷-0918
  2. Java09-day09【ArrayList(概述、构造方法、常用方法、遍历)、简易学生管理系统】
  3. SAP Business Technology Platform 上 Roles,Roles collection 和 Scopes 的关联关系
  4. C语言1e12怎么识别,掌握C语言中基本的运算符
  5. java csv 导入数据库_java – 如何上传CSV文件然后自动将数据插入数据库?
  6. 1^2+2^2+……+n^2的公式证明
  7. 关于MFC实现圆角矩形窗口
  8. php客户端和服务器的值传递
  9. java 并发 处理机制 和 cas 理解
  10. 16家上市银行股票代码
  11. 服务器系统宽带拔号,宽带拨号上网什么意思?宽带拨号上网的操作步骤
  12. Helm vs Operator
  13. 抖音如何能快速涨粉?
  14. QQ\微信等聊天记录备份与恢复
  15. 数据结构实验6图的应用-行车路线问题
  16. Codeforces Round #704 (Div. 2) A-E题解
  17. 齐鲁工业大学计算机科学与技术学院院长,齐鲁工业大学校友会计算机科学与技术学院校友会分会成立...
  18. .nhd文件怎么打开
  19. 基于光纤传能的异构无源光网络研究
  20. 华为智慧屏和鸿蒙系统对比,鸿蒙初体验:荣耀智慧屏跨系统交互构建新生态

热门文章

  1. Java编程的逻辑 (59) - 文件和目录操作
  2. 在Mac下的前端开发必备工具
  3. 最近的特别问题(1)
  4. Win10启动盘制作工具
  5. MySQL varchar和char类型
  6. Java中List的用法
  7. <DependencyManagement>记录
  8. 一句话简单总结李航统计学习法各算法
  9. Python之functools.reduce使用
  10. Matlab R2018a版离线使用帮助文档方法