Python 模块


模块(Module)是一种组织代码的方式,用于创建可重用的库。


一个模块通常保存在一个单独的.py文件。

模块也是一个Python对象,可以包含属性、函数和类,也可以包含可以运行的代码。Python标准库有很多可以使用的模块,也可以定义自己的模块。

导入模块

要使用模块中的函数或类,需要导入模块(Import module)。使用import语句导入模块。

有下面几种导入模块的方式:

  • import moduleName1, moduleName2,...:导入一个或多个模块。
  • from moduleName import name1, name2...:导入一个模块中的一个或多个属性到当前命名空间(Namespace)。
  • from moduleName import *:导入一个模块中的所有属性到当前命名空间(Namespace)。

下面是导入模块的例子:

#!/usr/bin/python

import time
from datetime import date

today = date.today()
print('today :', today) # 2018-04-29

date = date.fromtimestamp(time.time())
print('date :', date)

创建模块

有两种创建模块的方式:

  • 模块内容在一个文件中,文件名为模块名.py模块名.py文件的保存目录在PYTHONPATH变量中,或者模块名.py文件保存在当前工作目录中。
  • 模块内容在一个目录中(目录名就是模块名),目录中有一个文件__init__.py包含Python命令用于装载目录,还可以有.py文件和子目录。

将自己创建的模块加入PYTHONPATH环境变量,export PYTHONPATH=$PYTHONPATH:模块所在目录,如果模块内容在目录中,模块所在目录是模块名这一级目录。

下面是使用文件创建模块的例子:

模块文件filemod.py:

#!/usr/bin/python

def say():
    print('say from filemod.py')

下面是使用文件模块的例子:

文件file.py:

#!/usr/bin/python

import filemod

filemod.say()

在命令行中,更改当前目录到file.py文件和filemod.py文件所在目录,执行命令python file.py运行file.py。

下面是使用目录创建模块的例子:

dirmod/__init__.py文件:

from say import say_sth
from listen import listen_sth

dirmod/say.py文件:

#!/usr/bin/python

def say_sth():
    print('say from say.py')

dirmod/listen.py文件:

#!/usr/bin/python

def listen_sth():
    print('listen from listen.py')

下面是使用目录创建模块的例子:

文件dir.py:

#!/usr/bin/python

import dirmod

dirmod.say_sth()
dirmod.listen_sth()

在命令行中,更改目录到dirmod目录的上级目录,执行命令export PYTHONPATH=$PYTHONPATH:dirmod,将当前目录加入PYTHONPATH,执行命令python dir.py运行dir.py。