- 模块:本质上就是.py文件,包含了独立的python逻辑,一般都是一个独立的功能。可重复利用。
- 包:包含了一个或多个模块的目录,区别于目录的一个重要标识就是,每个包里必有一个__init__.py文件。这是包的初始化文件。
- 模块既可以被导入到 Python 的交互式解释器中,也可以被导入到其他模块中,除此之外,模块还可以作为独立的脚本来执行。
- 导入模块的动作由
import
语句完成,通常(非必需)将所有的import
语句放在一个模块(或脚本)的开头处,被导入的模块名被放置在导入模块的全局符号表中。 - 一个模块可以包含可执行语句和函数定义,这些语句用于初始化模块,它们仅在
import
语句中第一次遇到模块名时执行(如果文件作为脚本执行,它们也会运行)。
1. import 语句
使用 import
语句导入一个模块,语法如下:
import module1 [, module2 [, ... moduleN ]]
表示允许一个 import 导入多个模块,但各个模块之间需要用逗号隔开。
import math
print('pi:', math.pi)
print('fabs:', math.fabs(-2))
执行结果:
pi: 3.141592653589793
fabs: 2.0
import ... as ...
用于为模块取别名,也可以为函数取别名。
方式:在导出模块的语句末尾增加一个 as 子句,as 后面跟上别名名称。
>>> import math as m
>>>
>>> m.pi
3.141592653589793
>>>
>>>
>>> from math import pi as p
>>>
>>> p
3.141592653589793
>>> import math as M
>>>
>>> math.pi
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'math' is not defined
这里,可以将 m
看做是 math
的一个别名,用 m.pi
的形式来访问。
注意: 在这种情况下,名称 math
不会被识别,它是无效的。
from modname import name1 [, name2 [,...nameN]]
用于从模块中导入指定部分到当前命名空间中。
>>>
>>> import math
>>>
>>> math.pi
3.141592653589793
>>> math.sin(1)
0.8414709848078965
>>> math.exp(1)
2.718281828459045
>>>
>>>
>>> from math import pi
>>> pi # pi 可以被输出
3.141592653589793
>>> sin(1) #无法输出
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'sin' is not defined
>>> from math import pi,sin #一次导入多个对象
>>> sin(1)
0.8414709848078965
【注】
- 如果导入模块,就会得到模块中所有对象;如果指定导入某个对象,就只能得到该对象。
- 如果在导入 math 模块时访问 pi 对象,需要使用 math.pi
- 使用 import...from... 语句后,可直接访问 pi 对象。
>>> import math
>>>
>>> math.pi
3.141592653589793
>>> pi
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'pi' is not defined
>>>
>>>
>>> from math import pi
>>>
>>> pi
3.141592653589793
>>> math.pi
3.141592653589793
from math import * 语句
该语句将 math 中所有的对象导入。
>>> from math import *
>>>
>>> pi
3.141592653589793
>>>
>>> sin(1)
0.8414709848078965
>>>
>>> exp(1)
2.718281828459045
2. 使用逗号输出
- 不使用格式化的方式时同时输出文本和变量值。
>>> dict = {'name':'zth' , 'age':20}
>>> print("姓名:",dict['name'] + "\t年龄:",dict['age'])
姓名: zth 年龄: 20