内部有__ init__.py的文件夹,用于管理模块,包也能够被导入,而且能够一并导入包下全部的模块python
包能够帮咱们管理模块,包里面有一个__ init __.py,由它帮咱们管理模块函数
import 包.模块名测试
包.模块.名字code
from 包 import 模块名blog
from 包.模块名 import 模块中的名字内存
模块是一系列功能的结合体,本质上是一个个的.py文件get
python内置的模块(python解释器)requests
好比:sys、time、os、turtleit
第三方的模块(别写的)编译
好比:requests
自定义的模块(本身写的)
本身定义的py文件
在测试代码时写加
快捷键:main+enter
if __name__ == "__main__": get_demo() # 测试模块
python解释器下的py文件
python解释器下的文件夹
一个个的py文件
模块能够帮助咱们更好的管理功能代码,好比:函数....
能够将项目拆分红一个个功能,分别存放在不一样的py文件(模块)中
建立:直接新建py文件
编写:在py文件中直接编写python代码
使用:经过import关键字导入模块或者经过from 。。。import。。。导入模块
import 模块 as 模块的别名、from 包/模块 import 模块/(函数名、变量名、类名)as 模块别名
在使用模块时须要注意,谁是执行文件,谁是被导入文件(模块)
模块在首次导入时就已经将其加载到内存中了,当前文件查找的顺序是先从内存中查找,以后的重复导入会直接从内存中查找,不会重复执行文件
首次导入模块会作三件事:
三个文件model1.py、model2.py、执行文件.py # - model1.py from model2 import name name = 'jason' # - model2.py from model1 import name name = 'tank' # -执行文件.py from model1 import name print(name) >>> ImportError: cannot import name 'name' from 'model'
# 1.须要查找的名字放在导入模块的上方 # - model1.py name = 'jason' from model2 import name # - model2.py from model1 import name name = 'tank' # -执行文件.py from model1 import name print(name) >>> jason
# 2.在函数内部导入,将模块变成函数名称空间中的名字 # - model1.py def func(): from model2 import name name = 'jason' # - model2.py from model1 import name name = 'tank' # -执行文件.py from model1 import name print(name) >>> jason