• DAY15 模块


    一.模块

      1.1 模块的定义:模块就是一系列功能的集合体

      1.2 模块的四种存在方式:

         1.使用python编写的.py文件(任一py文件都可以作为模块)

         2.包:一堆py文件的集合体

         3.使用C编写并链接到python解释器的内置模块

         4.已经被编译为共享库或DLL的C或C++拓展

      1.3 使用模块:在要使用模块的文件中通过 import 模块名 来导入模块

         import module
         1.编译执行模块所对应的py文件,形成对应的pyc文件
         2.产生该模块自己的全局名称空间
         3.在使用该模块的全局名称空间中产生一个名字(导入的模块名)

         注:
         1.每一个文件都会产生自己的全局名称空间,且相互不影响
         2.多次导入,只会编译执行模块一次,将其加载到内存,之后的都是直接对名字的引用

      1.4 使用模块的优点:

         1.从文件级别组织代码,是同特性的功能能统一管理

         2.可以使用系统或第三方模块(拿来主义),来提高开发效率

    二.模块导入

      通过as关键字可以给模块起别名:模块名一旦起别名原模块名就不能再使用

      1.可以简化模块名字

        import mmmmmmmmmmmm3 as my_m3

        print(my_m3.num)

      2.可以统一功能

        cmd = input('数据库选择 1:mysql | 2:oracle:')
        if cmd == '1':
          import mysql as db
          # mysql.excuse()
        else:
          import oracle as db
          # oracle.excuse()
        db.excuse()

    三.from导入模块

      3.1 from 模块名 import 名字1,名字2,...,名字n

        # 可以指名道姓导入模块中所想要导入的名字

      3.2 from 模块名 import *

        # 导入的是模块中的__all__这个列表

        # 1.系统默认该列表不会收录_开头的名字

        # 2.可以自定义__all__列表来规定外界通过*可以导入的名字

        注意:1.不建议直接导入*,因为可读性差,且极容易出现变量重名

            from 模块名 import *

            # 可以使用模块中的a

              a = 20

            # 模块中的a就被覆盖了,且在代码上还不能直接看出

      3.3 from导入起别名

        from 模块名 import 名字1 as 别名1,...,名字n as 别名n

    四.自执行与模块区别

      __name__:
      1.在py文件作为模块被使用时,__name__为模块名
      2.在py文件自执行时,__name__为字符串 '__main__'

      

      print("共有逻辑")
      if __name__ == '__main__':
        # 所有自执行的逻辑
        print("m6: 我是自执行的")
        a = 10 # 产生的是全局的名字
      else:
        # 所有模块的逻辑
        print("m6: 我被导入执行的")
        print(a) # 会报错:走else就不可能走if,所以a压根没产生

      

                

          

      

     

  • 相关阅读:
    spring子模块----->Spring Security------->相关教程(参考资料)
    Maven--->学习心得--->maven 概述
    Spring和Spring MVC 、Spring Security的关系
    leapMotion简介
    软件工程需求分析
    大型web网站-----系统架构
    Maven的安装与配置
    A Java Exception occured 解决
    mysql-5.7.20安装和配置
    线段树 poj 3667
  • 原文地址:https://www.cnblogs.com/majingjie/p/10672889.html
Copyright © 2020-2023  润新知