Python:包、模块、类、函数的调用

一、关系

  1. 包一般指文件夹或者安装包(安装包一般也是压缩后的文件夹),里面包含多个.py文件(必须有一个__init__.py文件),一般也含有多个子包(或子文件夹);
  2. 一般一个.py文件就是一个模块,一个模块可以包含多个类或函数,一般只有一个类或函数
  3. 一个类里一般包含多个函数
  4. 一个函数一般包含7~15行代码
  5. 模块的名字不能与其下的类和函数的名字相同,导入时容易出现位置错误

 

二、调用

 # 一般都是调用其它包中的模块下的类或者函数;

 # print(__file__):查看当前模块的绝对路径;

 

  1. 导入包下的模块中的类/函数:当前工作目录下;
    # 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

     # 导入类后,可直接调用类的方法:类.func()

  2. 导入其它包下的模块中的类/函数(非当前工作目录下):将模块所在的上级文件夹路径临时加入到系统变量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文件的上级文件夹;(之所以导入上一级文件夹路径,可能为了避免后面使用子包外的其它模块;

  3. 问题:sys.path.append(r"E:pythonwj"),此为导入绝对路径;如果将代码复制到其它电脑上,将无法使用;

  4. 导入相对路径:

 

posted @   何永灿  阅读(1910)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
点击右上角即可分享
微信分享提示