• python之路--day16---包


    包:

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

      创建包的目的就是为了用文件夹将文件/模块组织起来

      

      强调:

        1,python3 下,即使包下没有__init__.py文件,import包不会报错

         python2 下,一定要有__init__.py文件,否则报错

        2,创建包的目的不是为了运行,而是被导入使用,

          包的本质就是一个模块

    import  aaa

    首次导入包时,发生的三件事:

      1,产生一个包的名称空间

      2,执行包下的__init__.py文件,将产生的名字存放于包的名称空间中,

      3,在当前执行文件中拿到一个名字aaa,这个名字指向包的名称空间

     

    # print(aaa.x) #aaa.x 就是问__init__.py要一个名字x
    # print(aaa.y)
    
    # print(aaa.m1) #aaa.m1 就是问aaa.__init__.py要一个名字m1
    # aaa.m1.f1()
     1 # from aaa.bbb import m3
     2 
     3 #强调:
     4  1,在导入时带点的,点的左边必须是一个包,这是导入包特有的语法
     5  2,包内,模块直接的导入应该使用from....import....
     6  3,from....import....    import后必须是一个明确的名字,没有任何的前缀
     7       实例:
     8         from a.b.c.d.f import g.h.x
     9             这是一个错误的导入方法
    10             1,f左边必须都是包
    11             2,import后的名字不能有任何前缀

    绝对导入和相对导入

     绝对导入:以包名起始

    相对导入:用 .  或者 ..  方式为起始(只能在一个包中使用,不能用于不同目录内

    # # 绝对导入
    # from nb.m1 import f1,f2
    # from nb.m2 import f3,f4
    # from nb.m3 import f5,f6
    # from nb.p1.m4 import f7
    
    
    # 相对导入
    from .m1 import f1,f2
    from .m2 import f3,f4
    from .m3 import f5,f6
    from .p1.m4 import f7

  • 相关阅读:
    [转]Vetur can't find `tsconfig.json` or `jsconfig.json` in d:VueProjectsmyroute.
    疾病检验的概率的问题
    约束优化方法之拉格朗日乘子法与KKT条件
    GloVe与word2vec
    RNN、LSTM、GRU
    SVM 常见问题
    深度学习常用优化器算法Optimizer详解
    树模型-常见问题点
    leetcode 打家劫舍
    node 图片处理库 sharp
  • 原文地址:https://www.cnblogs.com/guodengjian/p/8745053.html
Copyright © 2020-2023  润新知