Python Tik
首页
编程基础

基本数据类型
操作符和表达式
控制语句的执行顺序
函数
模块
数据结构

输入输出
异常处理
标准库概要

Python应用

网络应用
数据库应用
图形用户界面开发
游戏开发

Python交流

博客

Python论坛

模块

上一页 下一页

模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py。模块可以被别的程序引入,以使用该模块中的函数等功能。这也是使用python标准库的方法。下面是一个使用python标准库中模块的例子。

#!/usr/bin/python
#-*- encoding:UTF-8 -*-
# Filename: using_sys.py

import sys

print '命令行参数如下:'
for i in sys.argv:
	print i

print '\n\nThe PYTHONPATH is', sys.path, '\n'
raw_input('(按任意键结束)')
运行输出如下:

$ python using_sys.py 参数2 参数3 参数4
命令行参数如下:
using_sys.py
参数2
参数3
参数4
The PYTHONPATH is ['/home/swaroop/byte/code', '/usr/lib/python23.zip', '/usr/lib/python2.3', '/usr/lib/python2.3/plat-linux2', '/usr/lib/python2.3/lib-tk', '/usr/lib/python2.3/lib-dynload', '/usr/lib/python2.3/site-packages', '/usr/lib/python2.3/site-packages/gtk-2.0']
(按任意键结束)


说明:
1、import sys引入python标准库中的sys.py模块;这是引入某一模块的方法。
2、sys.argv是一个包含命令行参数的列表。$ python using_sys.py we are arguments这命令中,python后面的就是命令行参数,包括程序名,它们将被存储在sys.argv中。
3、sys.path包含了一个Python解释器自动查找所需模块的路径的列表。注意列表中的第一个字符串是空的,这说明当前目录也是sys.path中的一部份,环境变量PYTHONPATH也一样。这说明你可以在程序中引入当前目录中的模块。否则,你要将所需的模块的路径存于sys.path中,方法是:sys.path.append('路径')。

1、__name__属性

一个模块被另一个程序第一次引入时,其主程序将运行。如果我们想在模块被引入时,模块中的某一程序块不执行,我们可以用__name__属性来使该程序块仅在该模块自身运行时执行。
示例:
#!/usr/bin/python
#-*- encoding:UTF-8 -*-
# Filename: using_name.py

if __name__ == '__main__':
	print '程序自身在运行'
else:
	print '我来自另一模块'
raw_input('(按任意键结束)')
运行输出如下:

$ python using_name.py
程序自身在运行
$ python
>>> import using_name
我来自另一模块
(按任意键结束)
>>>

说明:
每个模块都有一个__name__属性,当其值是'__main__'时,表明该模块自身在运行,否则是被引入。

2、建造你自己的模块

其实只要后缀是.py的python程序都是模块,建造模块就是写后缀是.py的python程序。
示例如下:
#!/usr/bin/python
#-*- encoding:UTF-8 -*-
# Filename: mymodule.py

def sayhi():#模块中定义的函数
	print '模块就是这样建造的.'

version = '0.1'

# 模块定义结束
上面的mymodule.py就是一个模块,其中定义了一个函数sayhi()和变量version,它们可以被别的程序使用。下面用一个例子说明如何在别的程序中引入该模块中的功能。
示例:
#!/usr/bin/python
#-*- encoding:UTF-8 -*-
# Filename: mymodule_demo.py

import mymodule

mymodule.sayhi()
print 'Version', mymodule.version
raw_input('(按任意键结束)')
输出如下:

$ python mymodule_demo.py
模块就是这样建造的.
Version 0.1
(按任意键结束)

说明:
1、在以上程序中我们用import mymodule引入我们自己写的mymodule.py模块
2、然后我们用mymodule.sayhi()和mymodule.version来使用mymodule.py模块中的函数sayhi()和变量version。

3、dir()函数

我们可以用python内建的dir()函数去列出一个模块所定义的所有属性。这些属性是函数名、类名、变量名。
当我们为dir()提供一个模块名时,它返回该模块中定义的属性,如果我们不为dir()提供任何参数,它将返回当前模块所定义的属性。
示例如下:

$ python
>>> import sys
>>> dir(sys) # 得到一个sys中定义的属性列表
['__displayhook__', '__doc__', '__excepthook__', '__name__', '__stderr__', '__stdin__', '__stdout__', '_getframe', 'api_version', 'argv', 'builtin_module_names', 'byteorder', 'call_tracing', 'callstats', 'copyright', 'displayhook', 'exc_clear', 'exc_info', 'exc_type', 'excepthook', 'exec_prefix', 'executable', 'exit', 'getcheckinterval', 'getdefaultencoding', 'getdlopenflags', 'getfilesystemencoding', 'getrecursionlimit', 'getrefcount', 'hexversion', 'maxint', 'maxunicode', 'meta_path','modules', 'path', 'path_hooks', 'path_importer_cache', 'platform', 'prefix', 'ps1', 'ps2', 'setcheckinterval', 'setdlopenflags', 'setprofile', 'setrecursionlimit', 'settrace', 'stderr', 'stdin', 'stdout', 'version', 'version_info', 'warnoptions']
>>> dir() # 得到一个当前模块中定义的属性列表
['__builtins__', '__doc__', '__name__', 'sys']
>>>
>>> a = 5 # 建立一个新的变量 'a'
>>> dir()
['__builtins__', '__doc__', '__name__', 'a', 'sys']
>>>
>>> del a # 删除变量名a
>>>
>>> dir()
['__builtins__', '__doc__', '__name__', 'sys']
>>>


上一页 下一页

版权所有
联系方式 email:zzjcs1971@163.com QQ:397987442