模块
导入方法
在python中,模块就是一个py文件,可以使用下面两种方法导入,以datetime为例:
#第一种方法
import datetime as dt #导入datetime 模块, 取别名为dt
print(dt.datetime.now()) #我们使用的是datetime模块中datetime类里的new方法
#运行结果:
2019-01-30 23:03:42.446101
#第二种方法
from datetime import datetime as dt #导入datetime 模块中的datetime类, 取别名为dt
print(dt.now()) #这里就直接可以使用datetime类中的new方法
#运行结果:
2019-01-30 23:06:52.144706
#第三种方法
from datetime import * #导入datetime 模块中的所有属性和方法, 这里不能取别名
print(datetime.now()) # 使用datetime类名对方法调用
#运行结果:
2019-01-30 23:06:52.144706
在同一目录下,可直接使用上面两种方法去导入,在不同目录下,需要使用 sys.path 添加路径
sys.path.append('C:\Users') #这样就可以导入'C:\Users'中的模块了
在python3中导入后,会在当前路径下生成一个 pycache 文件夹
包管理
把很多模块放到一个文件夹里面,就可以形成一个包
当把很多模块放在文件中时,引入包管理以方便引用包中的模块
__init__.py
: 有这个文件的文件夹才算是一个包
在包管理中,加入init模块,则包名可以直接通过属性访问的方式,访问此模块内的对象,就像类中的初始化方法,此模块不加上可能不会报错,但是规范是要加上,文件内容可以为空
相对路径导入:
在包管理中,可分别来导入同层. (一个点) 和上一层的模块 … (两个点)
包的引入
在包中,如果包中模块要导入同一包中的其他模块,就必须使用此方法导入
from .module(..module) import obj (as new_name)
引入之后的影响:
当一个模块中出现此导入方式,则该模块不能被直接运行,只能被导入