1. 直接导入模块 import 模块名
优点:干净直接
import sys
print(sys.path)
import os # os是一个模块
import os.path # 注意这里的os.path是一个模块
2.直接导入包 import 包名
如果只导入包,在调用时不可使用.
来找到模块,但可以访问到__init__.py
下的类和函数。
import bs4 # 注意这里bs4是一个包!
soup = bs4.BeautifulSoup(...) # 可以访问到包中__init__.py下的类和函数
import Mypack
# Mypack.fun.func() 会报错,找不到fun模块,需要使用方法3或6来导入特定模块
3.导入包中的一个模块 import 包名.模块名
包使用的注意事项
- 需要先将包(文件夹)写在
sys.path
列表中的一个目录下,如果没有需要使用列表的append
方法追加进去。 - 在包中需要再写一个
__init__.py
文件表示这是一个包,文件可以为空。在__init__.py
下写的函数和类可以在只导入包的情况下访问到(如只导入bs4
包,可以使用BeautifulSoup
类,但不可以使用包中的其他模块)。
import sys
sys.path.append(r"E:\\")
import Mypack.fun
Mypack.fun.func()
4.导入模块并取别名 import 模块名 as 别名
优点:别名方便记忆
import sys as s
print(s.path)
import Mypack.fun as f
f.func()
5.从模块(或者包)中取出特定函数(不建议) from 模块名(包名) import 函数名
优点:直接取出特定函数,无需再加命名空间。
缺点:无命名空间限制,容易乱。
from sys import setrecursionlimit
setrecursionlimit(500)
from bs4 import BeautifulSoup # 这里取出了bs4包中__init__.py文件中的BeautifulSoup类
soup = BeautifulSoup(...)
用通配符导入模块中的所有函数,且无需加命名空间。
from sys import *
setrecursionlimit(500)
6.从包中取出特定模块 from 包名 import 模块名
优点:相较方法3在调用时可以少写包名。
from Mypack import fun
fun.func()