模块导入
import导入模块,在模块调用时必须加上模块名.方法名()
例:
import time
time.time
优点:所有属性和方法都属于模块所在的名称空间,不会与当前名称空间产生冲突
缺点:加前缀调用麻烦
from 模块名 import 方法名
1.产生一个模块的名称空间
2.运行模块文件将允许过程中产生的名字都对到模块的名称空间中去
3.在当前名称空间中拿到一个名字,该名字与模块名称空间中的内存地址
例:
from time import time
time()
优点:不用加前缀
缺点:容易与当前名称空间混淆,如果当前空间中本身还有一个time,这个会造成覆盖。
循环导入:
导入模块1时模块1中导入了模块2,且模块2中导入了m1,则造成了循环导入。
查看已经加载到内存中的模块:
import sys
print(sys.modules)
加载本地路径模块:
import sys
sys.path.append(r’文件绝对路径’)
import foo(加载的模块名)
包:
1.包就是一个包含有__init__.py文件的文件夹
2.为何要有包
包的本质是模块的一种形式,包是用来被当做模块导入
导入模块(包)的流程:
1.产生一个名称空间
2.运行包下的init.py(这里的init左右有两个下划线),将运行过程中产生的名字都丢到1的名称空间中
3.再当前执行文件的名称空间中拿到一个名字mmm,mmm指向1的名称空间
import mmm #这里的mmm是一个文件夹,本质上是在导入mmm下的init.py
#本质上把功能都写进init.py,可以直接调用。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!