模块

1.模块是程序

任何Python程序都可以作为模块导入;若该模块未存放在默认的目录中,需要将当前所在模块添加到sys.path中;

# 该模块保存在C:\python(Windows)或者~/python(UNIX/Mac OS X)目录中
>>> import sys
>>> sys.path.append('c:/python')        # Windows
>>> sys.path.expanduser('~/python)      # UNIX

在UNIX系统中,不能简单地将字符串'~/python'添加到sys.path中,必须使用完整的路径(如/home/yourusername/python);如果希望将此操作自动完成,可以使用sys.path.expanduser('~/python)

2.模块用于定义

模块可以保持自己的作用域,定义的所有类和函数以及赋值后的变量都成了模块的特性; 若希望模块能像程序一样被执行,可对Python解释器使用-m切换开关来执行程序;若progname.py文件和其他模块都已被安装(即导入了progname),运行python -m progname args命令就会运行带命令行参数args的progname程序;

主程序中,变量__name__的值是'__main__',在导入的模块中,该变量值为模块的名字;

# hello.py

def hello():
    print "Hello, world!"
def test():
    hello()
if __name__ == '__main__': test()

3.让模块可用

sys.path包含了字符串组成的一个目录列表,解释器在该列表中查找模块;

  • 获取解释器搜索路径:
    >>> import sys, pprint
    >>> pprint.pprint(sys.path)
    # site-packages目录是最佳选择
    
  • 添加解释器搜索路径:
    # 标准的实现方法是在PYTHONPATH环境变量中包含模块所在的目录
    

4.包

可以将模块分组为包,包就是就是模块所在的目录;为了让Python将其作为包对待,必须包含一个命名为__init__py的文件(模块);若将其作为普通模块导入,文件的内容就是包的内容;

results matching ""

    No results matching ""