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__模块,把下一个新版本的特性导入到当前版本。于是我们就可以再当前版本测试和试验新版本的一些特性。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。