模块简介
什么是模块
python模块是一系列功能的结合体,一个py文件就是一个模块,导入模块可以引用模块中已经写好的功能;在需要的时候可以直接拿来套用,比如说,模块就是已经洗好待下锅的菜,剩下的工作就是什么时候用到了;直接下锅就行了,极大提高了开发效率!
将程序模块化会使整个程序结构更加清晰,维护起来更加方便。单独开发一个小的模块也会更加简单,可以被重复使用,即保证了代码的重要性,又增加了的可维护性。
模块的分类
1.内置的:python中自带的;可以直接调用
2.第三方的:就是别人写好的,需要下载使用
3.自定义的:就是自己写的
模块的存在形式
模块:就是我们自己写的py文件,一个py文件就是一个模块
包:就是一系列py文件的集合,以文件夹的形式展现
模块的使用
import句式
使用时需注意:
1.import 在使用阶段模块名py后缀不能加,比如说:import mk,如果写成import mk.py就是错误的
2.要区分开哪个是执行文件,哪一个是导入文件
3.在导入模块的时候,只有第一次会执行,其他的不会执行
import导入模块
import 模块名
整个模块的导入流程:
1.运行执行文件,产生执行文件的全局名称空间、
2.运行导入文件(lmp.py)
3.产生导入文件的全局名称空间,并且把导入文件中产生的名字都保存到导入文件的全局名称空间中
4.在执行文件中,产生一个lmp名字指向导入文件的全局名称
form...import...导入模块
from 模块名 import 模块内名字
模块导入流程:
1. 运行执行文件,产生执行文件的全局名称空间
2. 运行lmp.py文件
3. 产生导入文件的全局名称空间,把运行之后产生的名字都保存到导入文件的全局名称空间中
4. 在执行文件中,产生一个名字变量名指向导入文件中得值
导入文件的扩展用法
1.起别名:
import 模块名 as 别名
比如:import mddddddddddddddddddddddddddddddddddddddd as lmp此时lmp就是改过后的名字
form 模块名 import 模块内的变量名 as 别名
2.连续导入:
import time
import md
import os
import sys
import time, md, os, sys # 等价于上面4行代码
import 模块名1, 模块名2, 模块名3, 模块名4, 模块名5,
# 推荐还是分开写好一些
3.通用导入:
from lmp import * #星号可以接收所有导入模块里的变量名,弊端就是看不到具体的内容,使用过程中也不会有提示功能
判断文件的类型
在执行文件中使用__name__,返回结果是__main__
如果在导入文件中使用__name__,结果是模块名
循环导入
在一个包中,如果A的完全导入依赖于B的导入,但是B的完全导入又需要导入A,即两个模块之间存在相互导入,那么就会引发循环导入问题,这种现象是坚决不允许的,如果出现这个问题就说明程序设计的不合理
模块的查找顺序
1. 先从内存中查找
2. 再从内置模块中查找
3. 从环境变量中查找sys.path
注意以后的文件名命名坚决不能跟内置模块名重名
模块丢失的解决方案
1.把模块所在的路径添加到环境变量中 会打印出文件的所有路径,第一个路径就是所在的文件夹
是文件名是列表类型,那既然是列表类型就可以追加,可以appand()追加文件路径
2.form 文件名 . 子文件名 import 模块名
标签:__,文件,py,导入,模块,import From: https://www.cnblogs.com/h-220413/p/17189007.html