为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式。在Python中,一个.py文件就称之为一个模块(Module)。
import sys def test(): 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 __name__=='__main__': test()
模块名要遵循Python变量命名规范,不要使用中文、特殊字符;
模块名不要和系统模块名冲突,最好先查看系统是否已存在该模块,检查方法是在Python交互环境执行import abc,若成功则说明系统存在此模块。
在Python中,是通过_前缀来实现的。
def _private_1(name): return 'Hello, %s' % name def _private_2(name): return 'Hi, %s' % name # 提供给外部的public, 否则private def greeting(name): if len(name) > 3: return _private_1(name) else: return _private_2(name) print(greeting("zhangsan"))
安装第三方模块,是通过包管理工具pip完成的。
Mac或Linux: 省略安装pip工具
Win: 安装python时, 确保安装时勾选了pip和Add python.exe to Path。
验证: cmd/shell, 执行pip/pip3
安装的第三方模块都应该注册到pypi.python.org
pip install Pillow
常用Pillow,以及MySQL驱动程序,Web框架Flask,科学计算Numpy, 使用pip安装费时费力
推荐Anaconda, 批量安装
当我们试图加载一个模块时,Python会在指定的路径下搜索对应的.py文件,如果找不到,就会报错:
import mymodule Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: No module named mymodule
默认情况下,Python解释器会搜索当前目录、所有已安装的内置模块和第三方模块,搜索路径存放在sys模块的path变量中:
import sys sys.path
新增搜索目录的方式: