The import system of python
python的import系统
import 模块
导入了一个模块,相当于岛屿了一个文件夹,是一个相对路径。
使用时需要 模块.函数
from x import y
导入了一个模块中的一个函数,又或者相当于一个文件夹中的一个文件。使用时直接使用import后面的函数名就可以。
from x import y
导入一个模块中所有的函数
from . import y
从当前文件夹中导入y
Ps. 较为复杂,目前暂不深入。
简单摘录
假设该from . import x
语句存在于proj/test.py
中,它会导入同级目录下的__init__.py
即proj/__init__.py
中的x对象,如果没有proj/__init__.py
或有那个文件但是文件中不存在x对象,就导入proj/x/__init__.py
,如果还没有,就导入proj/x.py
,还没有就报错。其中同级是按__name__
的前一部分或__package__
确定的。如果用python proj/test.py
运行,name__就是__main,package__是None,就会报错。如果用python -m proj.test运行,虽然__name__还是__main,但是__package__是proj,就能成功导入,即使proj/init.py不存在也行。
from ... import y
从上一级文件夹导入y
from ...x import y
从上一级文件夹中的x文件夹里的__init__.py程序里导入y
import x as b
将x命名为b导入
from x import y as b
导入x中的y并命名为b