模块的基本概念
1.什么是模块
模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py。模块可以被别的程序引入,以使用该模块中的函数等功能。这也是使用 python 标准库的方法
常见的场景:一个模块就是一个包含了一组功能的Python文件,比如spam.py,模块名为spam,可以通过import spam使用。
在Python中,模块的使用方式都是一样的,但其实细说的,模块可以分为四个类别:
1、使用Python编写的.py文件
2、已被编译为共享库或DLL的C或C++扩展
3、把一系列模块组织到一起的文件夹(注:文件夹下有一个init.py文件,该文件夹称之为包)
4、使用C编写并链接到Python解释器的内置模块
2.为什么使用模块
从文件级别组织程序,更方便管理
提升开发效率
引入模块
模块分为三种:
1、内置模块(又称标准库)执行help('modules')查看所有Python自带模块列表
2、第三方开源模块,可通过pip install 模块名 联网安装
3、自定义模块
当解释器遇到 import 语句,如果模块在当前的搜索路径就会被导入。
搜索路径是一个解释器会先进行搜索的所有目录的列表。如想要导入模块 support,需要把命令放在脚本的顶端:
举个栗子:模块testm.py
def func( par ):
print ("Hello : ", par)
return
#在test.py文件引入testm.py模块
# 导入模块
import testm
# 现在可以调用模块里包含的函数了
testm.func("world")) #输出结果:Hello : world
引入模块指定内容
from...import语句
Python 的 from 语句让你从模块中导入一个指定的部分到当前命名空间中,语法如下:
from modname import name1[, name2[, ... nameN]]
举个栗子:
from testm import func #要导入模块 testm 的 func 函数
func(“world”) #输出结果:Hello : world
这个声明不会把整个testm模块导入到当前的命名空间中,它只会将testm里的func函数引入进来。
from … import * 语句
把一个模块的所有内容全都导入到当前的命名空间也是可行的,只需使用如下声明:
from modname import *
模块name属性
name属性
一个模块被另一个程序第一次引入时,其主程序将运行。如果我们想在模块被引入时,模块中的某一程序块不执行,我们可以用name属性来使该程序块仅在该模块自身运行时执行。
举个栗子:
if __name__ == '__main__':
print('程序自身在运行')
else:
print('我来自另一模块')
1.直接运行模块本身
输出结果为程序自身在运行
2.在其他模块引入该模块时
输出结果为我来自另一模块
说明: 每个模块都有一个name属性,当其值是'main'时,表明该模块自身在运行,否则是被引入。
说明:name 与 main 底下是双下划线。
网友评论