zoukankan      html  css  js  c++  java
  • python的模块与包的导入

    类似于C语言的包含头文件去引用其他文件的函数,python也有类似的机制,常用的引入方法有以下

    import 模块名  #模块名就是py文件名
    #使用这种方法以后调用函数的时候要使用模块名.函数名()这种形式
    
    from 模块名 import 函数名
    #使用这种方法以后调用函数的时候要可以直接使用函数名()这种形式

    这里要注意的是

    当模块和程序入口为同级文件时候,可以用以上方法

    如果不为同级文件,需要from 包名(文件夹名) import 模块名(文件名)

    举个多重包嵌套的时候如何引入模块

    from package1.package2.package3 import module1
    #使用这种方法以后调用函数的时候要使用模块名.函数名()这种形式
    
    from package1.package2.package3.module1 import func
    #使用这种方法以后调用函数的时候要可以直接使用函数名()这种形式

     针对于常见的目录结构导入模块方法


    上图是我们比较常用的文件结构有以下特点

    主函数去寻找模块的时候有两种方式:1.找自己同级的py文件 2.找系统环境变量路径下的py文件

    这个时候我们得如何做呢?

     首先铺垫几个基本知识

    1.__file__变量,这个变量记录了你当前的文件,使用os.path.os.path.abspath(__file__)得到文件的绝对路径

    #打印当前文件的路径
    print(os.path.os.path.abspath(__file__))
    #打印结果为E:/winshare/python/package/module.py

    2.os模块中的一个取文件夹函数os.path.dirname(),传参为一个文件绝对路径。

    #获取当前文件的文件夹路径
    print(os.path.dirname("E:/winshare/python/package/module.py"))
    #打印结果为E:/winshare/python/package

    3.将路径添加到环境变量中可以让python找到模块,sys.path.append(路径名)

    利用上述3个 知识我们就可以进行模块的导入了。

    import os,sys
    
    print(__file__)
    #当前路径是E:/winshare/python/bin/test.py
    
    BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    print(BASE_DIR)
    #获取到基础路径E:/winshare/python
    
    sys.path.append(BASE_DIR)
    #将基础路径放到系统变量中
    
    from package import module
    #引入包
  • 相关阅读:
    Android开发笔记——WebView
    字符串_最小表示法求循环串的最小序列(HDU_4162)
    STL_map简单应用(HDU_1075)
    DP_最大子序列和(HDU_1003)
    STL map 使用方法(转)
    数学_线性筛法建立素数表(HDU_1262)
    學習筆記 ADO數據庫訪問技術
    C#多线程学习
    Java容器
    选取单元格的基本语句
  • 原文地址:https://www.cnblogs.com/codescrew/p/8836303.html
Copyright © 2011-2022 走看看