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() #直接可以调用,以文件夹的名字.模块名进行调用

  • 相关阅读:
    python并发编程之多线程
    python并发之多线程
    线程理论知识
    Android ViewPager
    Fragment和activity之间的通信
    Android AsyncTask
    Android四大组件
    Android 数据存储
    Android BaseAdapter
    Android Fragment
  • 原文地址:https://www.cnblogs.com/shizhengquan/p/10146493.html
Copyright © 2011-2022 走看看