1.To put it simple, Module是写好的一系列函数或变量,文件以.py为后缀,可以在其他Module中整体或部分引用。
PS: 在Module中[结尾或开头]加入if __name__ == "__main__": import sys fib(int(sys.argv[1])),因为每个Module都有一个全局变 量"__name__"代表此Module名[im not so sure],所以这句话的意思就是,如果单独运行这个Module的话,他就是主程序,因此判断下边的语句会执行。而当此module被引用到其他module里边的时候,这个就不被执行,主程序已改变。good explanation: http://www.effbot.org/pyfaq/tutor-what-is-if-name-main-for.htm
2.Package:组织Module命名空间的一种方法[使用"."],如:
sound/ Top-level package
__init__.py Initialize the sound package
formats/ Subpackage for file format conversions
__init__.py
wavread.py
wavwrite.py
aiffread.py
aiffwrite.py
auread.py
auwrite.py
...
effects/ Subpackage for sound effects
__init__.py
echo.py
surround.py
reverse.py
...
filters/ Subpackage for filters
__init__.py
equalizer.py
vocoder.py
karaoke.py
当引用这个package的时候,Python会在sys.path上搜索子路径,所以需要将某个目录当成package的话,__init__.py是必须要有的,就是一个placeholder,不过也可以有代码。
refers to docs online: http://docs.python.org/2/tutorial/modules.html#packages [good docs explanation]