• 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. 导入相对路径:
  • 相关阅读:
    java学习之—栈
    java中的a++与++a的区别
    java学习之—数组的曾删改查
    Mybatis #{ } 和 ${ } 区别
    详解Windows不重启使环境变量修改生效(经典)
    laravel artisan常用命令
    Laravel 出现 No application encryption key has been specified.
    springboot的几种启动方式
    Angular 服务的简单使用
    Angular-1.6 路由 简单使用
  • 原文地址:https://www.cnblogs.com/volcao/p/9081058.html
Copyright © 2020-2023  润新知