5.1、模块使用

模块基本上就是一个包含了所有你定义的函数和变量的文件。为了在其他程序中重用模块,模块的文件名必须.py为扩展名。模块可以从其他程序 输入 以便利用它的功能。这也是使用Python标准库的方法。

实例1:

#!/usr/bin/python
#
Filename: sayHello.py
'''

Explain:
Say 'Hello' function
'''
def say():
print "Hello"

if __name__ == "__main__":
print __doc__
if __name__=="sayHello":
print "I'm Being Called"

python sayHello.py输出:

Explain:
Say 'Hello' function
实例2:

#!/usr/bin/python
#
Filename call.py

import sayHello
sayHello.say()

输出:

I'm Being Called
Hello
说明:python中,当一个模拟作为整体被单独执行时,该模块的__name__的值是"__main__",当模块被引入使用的时,该模块__name__的值是该模块的名字。

如:sayHello.py,单独使用时__name__的值为"__main__",当被call.py调用时其__name__值发生了改变,变为其自己的名字:sayHello。

由些可理解为,

每个Python模块都有它的__name__,如果它是'__main__',这说明这个模块被用户单独运行,当它被当作一个模块被引入时,其本身不需要一个可执行的入口main了。__name__的值被变为模块本身的名字。

5.2、字节编译的.pyc文件

输入一个模块相对来说是一个比较费时的事情,所以Python做了一些技巧,以便使输入模块更加快一些。一种方法是创建 字节编译的文件 ,这些文件以.pyc作为扩展名。字节编译的文件与Python变换程序的中间状态有关当你在下次从别的程序输入这个模块的时候,.pyc文件是十分有用的——它会快得多,因为一部分输入模块所需的处理已经完成了。(如:单独执行模块sayHello.py不会产生sayHello.pyc文件,而当sayHello.py被引用时就会产生sayHello.pyc)。

5.3、package(包)

package是一组module的集合,用以下方法创建一个package。

1)、在当前目录创建一个目录say

2)、在say目录下创建一个空文件__init__.py

3)、在say目录下创建模块

实例:

mkdir say

touch say/__init__.py

cp sayHello.py say/

修改之前的call.py如下:

#!/usr/bin/python
#
Filename call.py

import say.sayHello
say.sayHello.say()

输出:

Hello

注:这里并没有再输出"I'm Being Called"原因是

if __name__=="say.sayHello":
  print "I'm Being Called"

此时条件并不成立了,当sayHello.py被调用时,这时__name__的值已经变为"say.sayHello"。

5.4、dir()函数

Python可以使用内建的dir函数列出指定对象或类的属性

当你为dir()提供一个模块名的时候,它返回模块定义的名称列表。如果不提供参数,它返回当前模块中定义的名称列表。

posted on 2011-08-16 11:18  xunya  阅读(241)  评论(0)    收藏  举报