Python笔记4#模块Module

▲模块Module

为了编写可维护的代码,我们可以把代码分放在不同的文件里。在Python中,一个.py文件就称为一个模块。

我们在编写程序的时候,经常引用其他模块,包括Python内置的模块和来自第三方的模块。

使用模块可以避免函数名和变量名起冲突,但是也要注意,尽量不要与内置函数(Built-in Function)名字冲突。

为了避免模块名冲突,Python又引入了按目录来组织模块的方法,称为包(Package)。

每个包目录下都会有一个__init__.py文件。这个文件是必须存在的,否则Python就把这个目录当成普通目录而不是一个package。__init__.py可以是空文件,也可以由Python代码。__init__.py本身就是一个模块,它的模块名就是包名。

package中还可以组织多级层次的包结构。例如

myPackage包中有subPackage包,subPackage中有个abc.py文件。那么abc.py文件模块名如下:

       myPackage.subPackage.abc

示例代码如下:

#coding:GBK

__author__ = wddoer

import sys

def test():
#sys.argv用list存储命令行所有参数
    args = sys.argv
    if len(args) == 1:
        print(hello, world!)
    elif len(args) == 2:
        print(hello, %s! % args[1])
    else:
        print(too many arguments!)

#命令行运行时,if语句为真,其他地方运行就为假。用来做测试
if __name__ == __main__:
    test()

作用域:

有的函数和变量,我们希望仅在模块内部使用。在python中,是通过前缀_来实现的。

类似_xxx和__xxx这样的函数和变量就是非公开的,从编程习惯上来说不应该被直接引用。

 

▲模块的安装

安装第三方模块,是通过setuptools这个工具完成的。python有两个封装了setuptools的包管理工具:easy_install和pip。目前官方推荐pip。

常见的第三方库:PIL(Python Image Library), MySQL-python, NumPy等

 

▲模块的搜索路径

当试图加载导入一个模块时,python会在指定的路径下搜索对应的.py文件。

默认情况下,python解释器会搜索当前目录,所有已安装的内置模块和第三方模块。搜索路径存放在sys模块的path变量中。

>>> import sys
>>> sys.path
[‘‘, C:\\Windows\\system32\\python34.zip, C:\\Python34\\DLLs, C:\\Python34\\lib, C:\\Python34, C:\\Python34\\lib\\site-packages]

要添加自己的搜索路径,有两种方法。

第一种,使用sys.path.append()方法直接添加。该种方法在运行时修改,运行结束后失效。

第二种,设置环境变量PYTHONPATH,该环境变量的内容会被自动添加到模块搜索路径中。

 

▲__future__

Python提供了__future__模块,把下一个新版本的特性导入到当前版本。于是我们就可以再当前版本测试和试验新版本的一些特性。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。