python3:module
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相关推荐
- python3 module 'pexpect' has no attribute 'spawn' 解决方法
python 在使用 pexpect 的时候,报了 module 'pexpect' has no attribute 'spawn' 并不是"pexpect"没有"sp ...
- C++ CMake 使用 Python3
C++ CMake 使用 Python3 CMakeListst 设置 # 如果使用的是非系统目录下的 Python 可以通过指定 Python3_ROOT_DIR 改变查找路径 # set(Pyth ...
- python nginx部署_Python 应用 uWSGI + Nginx 部署
新建一个 Django 应用部署 •使用 py 文件启动 uWSGI def application(env, start_response):start_response('200 ok', [(' ...
- Python 应用 uWSGI + Nginx 部署
新建一个 Django 应用部署 •使用 py 文件启动 uWSGI def application(env, start_response): start_response('200 ok', [( ...
- linux安装bash工具包,Linux 资源监视工具BashTop的安装和使用
使用BashTop,您还可以对进程进行排序,以及轻松地在各种排序选项之间切换.此外,您可以将SIGKILL,SIGTERM和SIGINT发送到所需的进程. BashTop可以安装在Linux,macO ...
- Python二进制数据处理
目录 前言 str与bytes base64模块 struct模块 参考链接 前言 本文所涉及到的代码均基于python 3.x. str与bytes 在写代码时,我们经常会涉及到字符串的处理,但字符 ...
- PyAutoFEP Tutorial--基于Gromacs
PyAutoFEP 自由能微扰计算–基于Gromacs 简介 注意:以下教程假定读者熟悉分子动力学 (MD) 和自由能微扰 (FEP) 理论.此外,了解 GROMACS 工具.拓扑和输入文件也很有用. ...
- ROCm环境下安装tvm
ROCm环境下安装tvm主要是为了构建libtvm.so.libtvm_runtime.so共享库 配置cmake环境,建议3.14版本以上 配置python环境,建议python3版本以上 配置gc ...
- 使用 uWSGI 和 Nginx 部署 Flask 应用程序
自从我第一次浪漫地接触 Python 已经过去了大约十年.这部特别的浪漫喜剧不知何故完全错过了"一见钟情"的比喻--我发现学习 Python 的过程令人愤怒.我担心的不是语言本身, ...
最新文章
- 网易2022秋季校园招聘-通用技术A卷-0918
- Java09-day09【ArrayList(概述、构造方法、常用方法、遍历)、简易学生管理系统】
- SAP Business Technology Platform 上 Roles,Roles collection 和 Scopes 的关联关系
- C语言1e12怎么识别,掌握C语言中基本的运算符
- java csv 导入数据库_java – 如何上传CSV文件然后自动将数据插入数据库?
- 1^2+2^2+……+n^2的公式证明
- 关于MFC实现圆角矩形窗口
- php客户端和服务器的值传递
- java 并发 处理机制 和 cas 理解
- 16家上市银行股票代码
- 服务器系统宽带拔号,宽带拨号上网什么意思?宽带拨号上网的操作步骤
- Helm vs Operator
- 抖音如何能快速涨粉?
- QQ\微信等聊天记录备份与恢复
- 数据结构实验6图的应用-行车路线问题
- Codeforces Round #704 (Div. 2) A-E题解
- 齐鲁工业大学计算机科学与技术学院院长,齐鲁工业大学校友会计算机科学与技术学院校友会分会成立...
- .nhd文件怎么打开
- 基于光纤传能的异构无源光网络研究
- 华为智慧屏和鸿蒙系统对比,鸿蒙初体验:荣耀智慧屏跨系统交互构建新生态