python3:module
来源:互联网 发布:乐视1s网络 编辑:程序博客网 时间:2024/06/04 20:11
1.Introduction
前面已经学习了如何在的序中定义函数而重用代码。如果想要在其他程序中重用很多函数,那么该如何编写程序呢?答案是使用模块。模块就是一个包含所有定义的函数和变量的文件。为了在其他程序中重用模块,模块的文件名必须以.py为扩展名。例如,使用sys模块:#using_sys.pyimport 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__.pyif __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.pydef sayHello(): print 'HellowtheWorld!';version = '0.1';#end of mymodule.py上面是一个模块的例子。它与普通的Python程序相比并没有什么特别之处。如何在其他的Python程序中使用这个模块呢?
#mymodule_demo.pyimport mymodule;mymodule.sayHello();print 'version', mymodule.version;
Python采用‘.’来调用其他模块中的函数与成员变量。
上面的程序我们也可以使用from...import语法实现:
#mymodule_demos.pyfrom mymodule import sayHello,version;sayHello();print 'version',version;
阅读全文
0 0
- python3:module
- python3 import module
- python3 No module named ‘MySQLdb’
- python3 No module named 'pkg_resources
- python3 module学习之keyword
- python3.* No module named ‘MySQLdb'
- python3 + Django :Error loading MySQLdb module No module named 'MySQLdb'
- python3.x: No module named 'urllib2'
- python3 module学习之math.log函数
- No module named win32api-for python3
- Python3 ImportError: No module named 'ConfigParser'
- mac python3.* ModuleNotFoundError: No module named 'MySQLdb'
- Python3:ImportError: No module named 'compiler.ast'
- Python3遇到的No module named ...
- python3.5[No module named 'encodings']报错
- python3 报错: AttributeError: 'module' object has no attribute 'urlopen'
- Python3异常-AttributeError: module 'sys' has no attribute 'setdefaultencoding'
- 【有图有真相】python3.*“ImportError: No module named ‘MySQLdb'”
- python爬虫爬取好看的图片
- 敏捷开发模式在项目实际开发过程中一些问题
- HDU
- Uva839 Not so Mobile(天平)
- ElasticSearch Nginx形式的访问控制
- python3:module
- 快速打开文件命令行的三种方法
- 算法学习笔记--3.Binary Search & Algorithmic Complexity
- zlib window上编译
- idhttpserver用法
- codeforces825 D. Suitable Replacement 二分答案
- hdu 4746 Mophues (莫比乌斯反演 + 分块+线性筛)
- python读取caffemodel文件
- HDU