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;

原创粉丝点击