zoukankan      html  css  js  c++  java
  • (10)包的使用

    什么是包

    包的本质就是一个包含有__init__.py文件的文件夹

    包是模块的一种形式

    所以包用来被当做模块导入使用

    导入包其实就是在导入包下__init__.py这个文件

    为何要用包

    就是将功能分类放入文件夹,以后通过文件名可以瞬间定位的需要的功能,一个模块越写越大才要定义成包,通常下载的第三方文件才会打包成一个包

    如何用包

    相对导入和绝对导入只能在包下使用,相对导入不受文件夹名变动影响,通常

    包的使用实例

    有项目文件夹下

    项目文件夹下有aaa文件夹

    aaa文件夹下有一个__init__.py文件

    from .m1 import f1 #相对导入模块,以包的顶级目录为起始
    from .m2 import f2
    from .bbb.m3 import f3

    PS:相对导入的格式,.代表当前在哪个文件这个.就代表哪个文件所在的文件夹

    aaa文件夹下有一个子包bbb

    bbb文件夹里面有一个m3模块

    需求是m3需要调用m1模块里面的f1功能

    两个点就是返回上级目录

    from ..m1 import f1

    aaa文件夹下有一个m1.py文件,里面有一个功能f1

    aaa文件夹下有一个m2.py文件,里面有一个功能f2

    PS:包内的文件全部是以导入为使用,不是用右键运行的

    在run.py文件内

    需求已文件夹名调用模块

    import sys
    sys.path.append(r'D:周末三期day09dir') #把aaa所在的文件夹加入环境变量
    PS:包的设计者不会考虑你下载后把包放在哪一个目录下,而且也不可能知道你会放入哪一个目录下,所以我们下载包后,放入文件夹,需要把环境变量加入环境变量中

    import aaa # aaa是指向包下的__init__.p

    aaa.f3() #直接可以调用,以文件夹的名字.模块名进行调用

  • 相关阅读:
    sizeof运算符介绍以及常见的坑
    程序员面试需要带身份证和毕业证原件吗
    CentOS7配置rsync实现文件同步
    CentOS7配置samba共享文件系统
    freecplus框架-字符串操作
    freecplus框架-文件操作
    freecplus框架-日志文件操作
    freecplus框架-日期、时间和计时器
    Unix 网络编程卷一源码编译踩坑记录 ubtutu 19.10
    实时人流量监测——海康威视sdk初体验
  • 原文地址:https://www.cnblogs.com/shizhengquan/p/10146493.html
Copyright © 2011-2022 走看看