zoukankan      html  css  js  c++  java
  • day15

    模块的四种形式

    自定义模块

    第三方模块

    内置模块

    import和from...import...

    import

    mport导入 , 引用的时候要加前缀

    1. import首次导入模块发生了3件事:

      1. 以模块为准创造一个模块的名称空间

      2. 执行模块对应的文件,将执行过程中产生的名字都丢到模块的名称空间

      3. 在当前执行文件中拿到一个模块名

        from...import

        from...import导入, 不需要使用前缀

        from...import...首次导入模块发生了3件事:

        1. 以模块为准创造一个模块的名称空间
        2. 执行模块对应的文件,将执行过程中产生的名字都丢到模块的名称空间
        3. 在当前执行文件的名称空间中拿到一个名字,该名字直接指向模块中的某一个名字,意味着可以不用加任何前缀而直接使用
        • 优点:不用加前缀,代码更加精简
        • 缺点:容易与当前执行文件中名称空间中的名字冲突

    循环导入问题

    m1.py
    from m2 import y
    x = 10
    
    m2.py
    from m1 import x
    y = 20
    
    1. 执行m1.py

    2. m1.py运行到from m2 import y,要运行m2.py

    3. m2.py运行到from m1 import x,要运行m1.py

    4. 进入死循环

      m1.py
      def f1():
          from m2 import y
      
      x = 10
      
      
      # m2.py
      def f1():
          from m1 import x
          
      y = 20
      

    模块的搜索路径

    1. 先从内存中已经导入的模块中寻找
    2. 内置的模块
    3. 环境变量sys.path中找

    python文件的两种用途

    __name__ == '__main__'不成立, __name__ != '__main__'# 当testt为模块文件时,__name__等于文件名
    

    __name__是每个文件独有的,当该文件作为执行文件运行时,__name__等于'main';当该文件作为模块文件导入时,__name__等于文件名

    pyinstaller模块

    pyinstaller库 可以将.py文件转化 为.EXE执行文件

    # pyinstaller –i rose.ico(图片文件,百度转一个) –F rose.py(python文件)
    pyinstaller –i rose.ico –F rose.py
    
  • 相关阅读:
    MongoDB 生态 – 可视化管理工具
    SOLR对多个(关联)表创建索引
    sublime 插件zen coding
    12/12工作笔记
    阅读《深入理解JavaScript定时机制》
    继续谈论XSS
    支付宝快捷支付模型
    谈论XSS
    生产者消费者模型
    如何根据iframe内嵌页面调整iframe高宽续篇
  • 原文地址:https://www.cnblogs.com/TZ0503/p/11594027.html
Copyright © 2011-2022 走看看