zoukankan      html  css  js  c++  java
  • Python学习之Python中包的管理

    python包的结构就是文件夹结构,如要想让以下文件夹结构变成python包结构

    只需在每个文件夹下添加一个__init__.py。

    python  __init__.py在包里起一个比较重要的作用
    要弄明白这个问题,首先要知道,python在执行import语句时,到底进行了什么操作,按照python的文档,它执行了如下操作:
    1步,创建一个新的,空的module对象(它可能包含多个module);
    2步,把这个module对象插入sys.module中
    3步,装载module的代码(如果需要,首先必须编译)
    4步,执行新的module中对应的代码。

    也就是说在导入一个包时,python首先去这个包下加载__init__.py.根据这个__init__.py里面规定的导入情况,再去导入其他模块。

    比如你想加载exer1.py模块,你只需在__init__.py里面写入from root.exer1.py import * 就能导入exer1.py模块.

    需要注意的是:

    1,引入同级模块需要显示导入即用from ... import ... ,用import ... 会报错。且必须要用 ‘.’明确他们的层级关系

    2,引入子包需要用import ...引入,且必须要用 ‘.’ 明确他们的层级关系

    假如在exer1下有个addf 函数

    在交互模式下,想调用exer1下的函数,首先

    import root;然后

    root.addf();就行了。

    如果要在exer11模块下引入同级模块,只需在exer12中添加:

    import root.pack1.exer12 或者 from root.pack1.exer12 import *

    如果要在exer1模块下引入子包下的其他模块,只需在exer1中添加:

    import root.pack1.exer11 或者 from root.pack1 import exer11

    另外还有一个pythonPath 这个知识点:

    pythonpath 就是python在装载模块时加载路径,自已可以设置。

    当你想引入其他磁盘下的py文件,你就需要往pythonPath 中设置路径。

    首先导入import sys,然后

    sys.path.insert(0,路径);或者sys.path.append('路径');

  • 相关阅读:
    Redis——发布/订阅
    Redis——任务队列
    GOF设计模式——Builder模式
    GOF设计模式——Prototype模式
    GOF设计模式——Singleton模式
    shell 脚本中的数学计算表达
    shell $'somestring'
    shell if-elif-elif-fi
    vim 使用
    疑问:为什么要使用href=”javascript:void(0);”?
  • 原文地址:https://www.cnblogs.com/hf-china/p/5099245.html
Copyright © 2011-2022 走看看