目录
1 模块
1.1 模块的定义
- 容器 -> 数据的封装
- 函数 -> 语句的封装
- 类 -> 方法和属性的封装
- 模块 -> 程序文件
- 在Python中,每个Python文件都可以作为一个模块,模块的名字就是文件的名字,也就是说自定义模块名必须符合标识符命名规则。
- 模块就是一个Python文件,以.py做后缀名,里面包含了对象定义和语句。
1.2 命名空间
命名空间因为对象的不同,也有所区别,可以分为如下几种:
- 内置命名空间(Built-in Namespaces):Python 运行起来,它们就存在了。内置函数的命名空间都属于内置命名空间,所以,我们可以在任何程序中直接运行它们,比如
id()
,不需要做什么操作,拿过来就直接使用了。 - 全局命名空间(Module:Global Namespaces):每个模块创建它自己所拥有的全局命名空间,不同模块的全局命名空间彼此独立,不同模块中相同名称的命名空间,也会因为模块的不同而不相互干扰。
- 本地命名空间(Function & Class:Local Namespaces):模块中有函数或者类,每个函数或者类所定义的命名空间就是本地命名空间。如果函数返回了结果或者抛出异常,则本地命名空间也结束了。
- 程序在查询上述三种命名空间的时候,就按照从里到外的顺序,即:Local Namespaces --> Global Namesspaces --> Built-in Namesspaces。
1.3 导入模块
- 导入模块:就是使用别人编写好的程序
- 方法:
- 第一种:
import 模块名
调用:模块名.功能名()
- 第二种:
from 模块名 import 函数名
调用:功能名()
- 第三种:
模块定义别名:import 模块名 as 新名字
功能定义别名:from 模块名 import 功能 as 新名字
- 第一种:
- 【例子】
【创建模块】
# TemperatureConversion.py
def c2f(cel):
fah = cel * 1.8 + 32
return fah
def f2c(fah):
cel = (fah - 32) / 1.8
return cel
【import 模块名】
import TemperatureConversion
print('32摄氏度 = %.2f华氏度' % TemperatureConversion.c2f(32))
print('99华氏度 = %.2f摄氏度' % TemperatureConversion.f2c(99))
# 32摄氏度 = 89.60华氏度
# 99华氏度 = 37.22摄氏度
【from 模块名 import 函数名】
from TemperatureConversion import c2f, f2c
print('32摄氏度 = %.2f华氏度' % c2f(32))
print('99华氏度 = %.2f摄氏度' % f2c(99))
# 32摄氏度 = 89.60华氏度
# 99华氏度 = 37.22摄氏度
【import 模块名 as 新名字】
import TemperatureConversion as tc
print('32摄氏度 = %.2f华氏度' % tc.c2f(32))
print('99华氏度 = %.2f摄氏度' % tc.f2c(99))
# 32摄氏度 = 89.60华氏度
# 99华氏度 = 37.22摄氏度
1.4 if __ name__ == ‘__main __’
__name__
:是内置变量,可用于表示当前模块的名字。- 如果一个 .py 文件(模块)被直接运行时,其
__name__
值为__main__
,即模块名为__main__
。 if __name__ == '__main__'
的意思是:当 .py 文件被直接运行时,if __name__ == '__main__'
之下的代码块将被运行;当 .py 文件以模块形式被导入时,if __name__ == '__main__'
之下的代码块不被运行。
【例子:没有 if __ name__ == ‘__main __’】
# 模块文件const.py
PI = 3.14
def main():
print("PI:", PI)
main()
# PI: 3.14
-------------------------
# 调用模块
from const import PI
def calc_round_area(radius):
return PI * (radius ** 2)
def main():
print("round area: ", calc_round_area(2))
main()