一、关系
- 包一般指文件夹或者安装包(安装包一般也是压缩后的文件夹),里面包含多个.py文件(必须有一个__init__.py文件),一般也含有多个子包(或子文件夹);
- 一般一个.py文件就是一个模块,一个模块可以包含多个类或函数,一般只有一个类或函数;
- 一个类里一般包含多个函数;
- 一个函数一般包含7~15行代码。
二、调用
# 一般都是调用其它包中的模块下的类或者函数;
- 导入包下的模块中的类/函数:当前工作目录下;
# 1)路径,工作目录下:ALG/kNN.py # KNNClassifier是kNN.py文件里的类 from ALG.kNN import KNNClassifier # 2)路径,工作目录下:ALG/train_test_split.py # train_test_split是train_test_split.py文件中的函数 from ALG.kNN import train_test_split
- 导入包下的模块中的类/函数:非当前工作目录下,将模块所在的上级文件夹路径临时加入到系统变量sys.path的列表中;
# E:/pythonwj/ALG/kNN.py # 导入kNN.py模块 # KNNClassifier是kNN.py内的类 import sys # 将kNN.py模块的上级文件夹路径导入临时系统变量 sys.path.append(r"E:pythonwj") from ALG import kNN # 实例化kNN.py模块下的KNNClassifier类 my_knn_clf = kNN.KNNClassifier
# A/B/C/kNN.py,B文件夹为kNN.py文件的上级文件夹;(之所以导入上一级文件夹路径,可能为了避免后面使用子包外的其它模块;)