模块:一系列功能的集合体
模块的三种来源:
1.内置的
2.自定义的
3.第三方的
四种表现形式:
1 使用python编写的.py文件(一个py.文件也可以称之为一个模块)
2 已被编译为共享库或DLL的C或C++扩展
3 把一系列模块组织到一起的文件夹(注:文件夹下有一个__init__.py文件,该文件夹称之为包)
4 使用C编写并链接到python解释器的内置模块
包:一系列py.文件的结合体.
1.用别人写好的模块(内置的,第三方的):典型的拿来主义,极大地提高开发效率.
2.使用自己写的模块(自定义):当程序大,多文件都需要相同的方法时,可以将公共的方法都写在一个py.文件中,当做模块导入
解耦合
区分执行文件和被导入文件
md.py
print(‘from the md.py‘) money = 1000 def read1(): print(‘md‘,money) def read2(): print(‘md模块‘) read1() def change(): global money money = 0
run.py
import md
右键运行run.py文件首先会创建一个run.py的名称空间 首次导入模块(md.py) 1.执行md.py文件 2.运行md.py文件中的代码将产生的名字与值存放到md.py名称空间中. 3.在执行文件中产生一个执行名称空间的名字(md) 多次导入不会再执行模块文件,会沿用第一次导入的结果
访问模块中的名字指向的值 print(md.money) #得到了值 模块名.名字 print(md.read1) print(md.read2) print(md.change) #均得到了函数的地址
import md money = 9999 print(money) #得到了当前执行文件的值 def read1(): print(‘from run read1‘) read1() #得到当前文件的值
1.只要你能拿到函数名 无论在哪都可以通过函数加括号来调用这个函数(会回到函数定义阶段 依次执行代码)
2.函数在定义阶段 名字查找就已经固定了 不会因为调用位置的变化而改变
使用import导入模块,访问模块名称空间中的名字统一句式:模块名.名字 1.指名道姓的访问模块中的名字 永远不会与执行文件中的名字冲突 2.你如果想访问模块中名字 必须用模块名.名字的方式
import os,sys 当几个模块有相同部分或者属于用一个模块,可以使用上面的方法,一行导入多个模块 当几个模块没有联系的情况下 应该分多次导入 import os import time import md ps:通常导入模块的句式会写在文件的开头
import aaaaaaaaaa.py as a 当模块名字比较复杂的情况下 可以给该模块名取别名
14天 模块 , 导模块 , 循环导入, 相对,绝对导入, 项目目录规范,
原文:https://www.cnblogs.com/komorebi/p/11197260.html