在其他程序中重用很多函数,使用模块。模块基本上就是包含了所有你定义的函数和变量的文件。为了在其他程序中重用模块,模块的文件名必须以.py为扩展名。
模块可以从其他程序输入以便利用它的功能。
例:使用sys模块
import sys
print 'the command line arguments are:'
for i in sys.argv:
print i
print '\n\nThe PYTHONPATH is',sys.path,'\n'
运行:
shiyan@ubuntu:~/Desktop/pythonLearn$ ./test.py we are arguments
the command line arguments are:
./test.py
we
are
arguments
The PYTHONPATH is ['/home/shiyan/Desktop/pythonLearn', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-linux2', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages/PIL', '/usr/lib/python2.7/dist-packages/gst-0.10', '/usr/lib/python2.7/dist-packages/gtk-2.0', '/usr/lib/python2.7/dist-packages/ubuntu-sso-client', '/usr/lib/python2.7/dist-packages/ubuntuone-client', '/usr/lib/python2.7/dist-packages/ubuntuone-control-panel', '/usr/lib/python2.7/dist-packages/ubuntuone-couch', '/usr/lib/python2.7/dist-packages/ubuntuone-storage-protocol']
shiyan@ubuntu:~/Desktop/pythonLearn$
当python执行import sys语句时,它在sys.path变量中所列目标中寻找sys.py模块,如果找到了,这个模块的主块中的语句将被执行,
然后这个模块将能够被你使用。
sys模块中的argv变量通过使用点号指明---sys.argv---好处是这个名称不会与你程序中的使用的argv变量冲突,也表明这个名称是sys模块中的一部分。
sys.argv是一个字符串的列表,它包含了命令行参数,即使用命令行传给你的程序的参数
sys.srgv[0]是./test.py以此类推
------------------------------------------------------------>字节编译的.pyc文件
导入一个模块相对来说是一个比较费时的事情,因此python使用创建字节编译的文件来使导入模块更加快一些,这些文件以.pyc为扩展名。字节编译的文件与python变换程序的中间状态有关,与平台无关
pyc文件介绍:http://blog.csdn.net/sislcb/article/details/4002414
----------------------------------------------------------------->from..import语句
如果想在程序中直接输入argv而不是sys.argv,可使用from sys import argv语句,使用模块中所有的名字则from sys import *;一般来说尽量使用import语句,增加程序的可读性,同时避免名称冲突
------------------------------------------------------------------>模块的__name__
http://sebug.net/paper/python/ch08s04.html
-------------------------------------------------------------->创建模块
#!/usr/bin/python
def sayhi():
print 'hi,this is myModule.'
version='0.1'
使用模块:
#!/usr/bin/python
#filename:test.py
import myModule
myModule.sayhi()
print 'version',myModule.version
运行输出:
shiyan@ubuntu:~/Desktop/pythonLearn$ ./test.py
hi,this is myModule.
version 0.1
shiyan@ubuntu:~/Desktop/pythonLearn$
shiyan@ubuntu:~/Desktop/pythonLearn$ ls
myModule.py myModule.pyc test.py
得到myModule.pyc文件,需要编译成pyc文件的应该是那些可以重用的模块,把 py文件编译成pyc文件最大的优点是在于我们在运行程序时不需要对该模块进行重新的解释,python的解释器认为;只有import进来的模块才是需要被重用的模块。