跳到主要内容

Python 模块和包

为了使 Python 代码逻辑更加清晰、更容易维护,通常我们会把不同功能的函数进行分组,分别存放在不同的源文件。这些不同功能的 .py 文件,就被称为模块(Module)。

模块定义

简单来说,Python 模块(Module)就是一个 Python 文件,它以 .py 结尾,其中包含了 Python 对象定义和功能实现。

实际上,Python 模块和包没啥区别,一样可以定义函数、类和变量,以及相关的功能执行代码。唯一的区别是,包的目录需要包含一个 __init__.py 文件,而且这个文件可以是空文件。

自定义模块

  • 在导入一个包的时候,Python 会根据 sys.path 中的目录来寻找这个包中包含的子目录。
  • 目录只有包含一个叫做 __init__.py 的文件才会被认作是一个包,主要是为了避免一些滥俗的名字(比如叫做 string)不小心的影响搜索路径中的有效模块。
  • 最简单的情况,放一个空的 :file:__init__.py就可以了。当然这个文件中也可以包含一些初始化代码或者为(将在后面介绍的)__all__变量赋值。

模块导入

import 语句

想使用 Python 源文件,只需在另一个源文件里执行 import 语句,语法如下:

import module1[, module2[,... moduleN]
import random

random.choice([0,1,2,3,4,5]) #随机从列表中获取一个

random.randrange(1,10) #1~9随机一个
import time

# 格式化成2016-03-20 11:45:39形式
print (time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))

from-import 语句

Python的from语句让你从模块中导入一个指定的部分到当前命名空间中,语法如下:

from modname import name1[, name2[, ... nameN]]
from time import strftime,localtime

# 格式化成2016-03-20 11:45:39形式
print (strftime("%Y-%m-%d %H:%M:%S", localtime()))

模块安装

第三方模块可以使用 pip 安装。

  • 使用 pip 命令安装
    • pip install 模块名
    • pip uninstall 模块名
    • pip freeze 查看都安装了哪些模块名
  • whl 下载安装的方式
  • 直接复制的方式
  • anaconda