import与包管理
import与from import
- 使用对象:import只可以对文件级别的使用,from则可以对函数,类使用
import math
from math import sin
from…import…只可以from前的包放点,import后必须直接是名字不能带点
- 包的引用关系(命名空间)import将依次导入每个点后面的包,而from仅限目标包会出现在命名空间中
![image](https://main-1308960713.cos.ap-beijing.myqcloud.com/wp-content/uploads/2023/10/image-20221204194558-qqeparw-3.png)
注意!import导入的是.后面的名字,意味着是
pandas.core
而不是core
被导入了! - 包的引用关系(系统缓存)
from numpy.random import
和import numpy.random
都会把random的所有module缓存,但是前者无法调用它,因为不在命名空间内,所以从运行速度来讲,import torch 和from torch import tensor是一样快的啦,不过后者就用不了torch其他部分( ̄y▽, ̄)╭
而加了点的from也是会依次将路径上所有的模块导入缓存但不导入命名空间
使用as的影响
用as接走模块名会让之前的包从命名空间消失
numpy不存在说明没有引入numpy命名空间,让import和from… import一样了。
相对引用与绝对引用
用的不多,简单来说不能运行用了相对引用的文件,必须到外部导包