python 基础-模块

来源:互联网 发布:unity3d导航网格寻路 编辑:程序博客网 时间:2024/06/08 00:00
>>> import fibo # 导入一个fibo.py文件,里面可以定义函数,这样 Python可以直接调用fibo.py中的函数。
其他导入方法
>>> from fibo import fib, fib2>>> from fibo import *
6.1.1 模块搜索路径:

 导入一个叫spam的模块时,解释器先在当前目录中搜索名为spam.py的文件,然后在环境变量PYTHONPATH指琮的目录列表中搜索,然后是环境变量PATH中的路径列表。如果PYTHONPATH没有设置,或者文件没有找到,接下来搜索安装目录,在UNIX中,通常是 .:/usr/local/lib/python


6.2 标准模块:

Python带有一个标准模块库,并发布有独立的文档,名为 Python 库参考手册 (此后称其为“库参考手册”)。有一些模块内置于解释器之中,这些操作的访问接口不是语言内核的一部分,但是已经内置于解释器了。这既是为了提高效率,也是为了给系统调用等操作系统原生访问提供接口。这类模块集合是一个依赖于底层平台的配置选项。例如,amoeba模块只提供对Amoeba原生系统的支持。有一个具体的模块值得注意:sys ,这个模块内置于所有的Python解释器。变量 sys.ps1 sys.ps2 定义了主提示符和副助提示符字符串:

>>> import sys
>>> sys.ps1
'>>> '
>>> sys.ps2
'... '
>>> sys.ps1 = 'c>'
c>print 'Yuck!'
Yuck!
c>
c>


变量sys.path 是解释器模块搜索路径的字符串列表。它由环境变量PYTHONPATH初始化,如果PYTHONPATH没有内定,就由内置的默认值初始化。你可以用标准和字符串操作修改它:

>>> import sys>>> sys.path.append('/ufs/guido/lib/python')

6.3 dir()
函数:

内置函数dir()用于按模块名搜索模块定义,它返回一个字符串类型的存储列表:


>>> import fibo,sys
>>> dir(fibo)
['__builtins__', '__doc__', '__file__', '__name__', '__package__', 'fib', 'fib2']
>>> dir(sys)
['__displayhook__', '__doc__', '__excepthook__', '__name__', '__package__', '__stderr__', '__stdin__', '__stdout__', '_clear_type_cache', '_current_frames', '_getframe', 'api_version', 'argv', 'builtin_module_names', 'byteorder', 'call_tracing', 'callstats', 'copyright', 'displayhook', 'dont_write_bytecode', 'exc_clear', 'exc_info', 'exc_type', 'excepthook', 'exec_prefix', 'executable', 'exit', 'flags', 'float_info', 'getcheckinterval', 'getdefaultencoding', 'getdlopenflags', 'getfilesystemencoding', 'getprofile', 'getrecursionlimit', 'getrefcount', 'getsizeof', 'gettrace', 'hexversion', 'maxint', 'maxsize', 'maxunicode', 'meta_path', 'modules', 'path', 'path_hooks', 'path_importer_cache', 'platform', 'prefix', 'ps1', 'ps2', 'py3kwarning', 'setcheckinterval', 'setdlopenflags', 'setprofile', 'setrecursionlimit', 'settrace', 'stderr', 'stdin', 'stdout', 'subversion', 'version', 'version_info', 'warnoptions']
>>>

6.4 包:
包通常是使用用“圆点模块名”的结构化模块命名空间。
         例如,名为A.B的模块表示了名为“A”的包中名为“B”的子模块。
         用圆点模块名保存像NunPyPython Imaging Library之类的不同类库架构可以避免模块之间的命名冲突。

6.4.1 从包中导入全部信息(Importing * From a Package

6.4.2 内置包(Intra-package)参考

6.4.3 多重路径中的包           

              包支持一个另为特殊的变量, __path__ 在包的__init__.py文件代码执行之前,该变量初始化一个目录名列表。该变量可以修改,它作用于包中的子包和模块的搜索功能。