zoukankan      html  css  js  c++  java
  • 面向过程+模块使用day16

    一、面向过程编程

      面向过程编程核心就是过程二字,过程指的是解决问题的步骤,即先干什么,再干什么,然后再做什么,基于该思想编写程序就好比在设计一条流水线,是一种机械式的思维方式

    优点:

      将复杂的问题流程化,进而简单化

    缺点:

      扩展性极差

    二、模块的使用

    1、什么是模块

      模块是是一系列功能的集合体,常见的模块形式:

        a、自定义模块

        b、第三方模块

        c、内置模块(c语言编写的)

      1)一个module.py文件就是一个模块,文件名是module.py,而模块名是module

      2)一个包含有__init__.py文件夹也是模块

    2、为什么要用模块

      1)用第三方或者内置的模块是一种拿来主义,可以极大地提升开发效率

      2)自定义模块即将我们自己程序中需要用到的公共功能写入一个python文件中,然后程序各部分组件可以通过导入的方式来引用/重用自定义模块中的功能

      注:python文件被当作模块导入时:

        __name__的值是模块名或者文件名

        python文件被执行时__name__='__main__'

    3、如何用

      导入的方式有两种:

        import模块名

        from 模块名 import 具体的功能

      a、import方式导入模块的过程:

        首次导入模块的时候发生三件事:

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

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

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

      注:之后的重复导入会直接引用之前造好的结果,不会重复执行模块的文件

      模块导入的大前提:模块是被执行文件导入使用,模块的导入必须搞清楚谁是执行文件谁是被导入模块

      使用方法:指名道姓的访问m1名称空间中的名字func,优点:不会与当前名称空间中的名字冲突,缺点:每次访问都需要加上前缀

      b、from ... import ...

        首次from m1 import func导入模块都发生三件事:

        1、先创建一个模块名称空间

        2、执行m1.py将执行过程中产生的名称都放入模块的名称空间中

        3、在当前执行文件中直接拿到一个功能名func,名字是直接指向模块名称空间中的某一功能的

        使用方法:直接使用即可,优点:无需加任何前缀。缺点:容易与当前名称空间中的名字冲突

      强调:

        程序中尽量避免循环导入,因为1导入2的时候,发生3件事,会执行2的代码,这时候2如果去导入1,1还在导入2,导致1下面代码还没执行到,名称空间            还没产生这样2就访问不到里面的属性就会报错,如果非要循环导入,有两种解决方案:

      a、将import写到函数中

      b、将import放入全局变量后

    4、路径

      一个py文件就是一个模块,在导入时必须从某一个文件夹下找到该文件

      模块的搜索路径是:

        内存→内置模块→环境变量(sys.path)

        

  • 相关阅读:
    迅为4412开发板实验Menuconfig_Kconfig(上)
    迅为IMX6ULL开发板Linux 4G通信实验
    迅为IMX6ULL开发板Linux RS232/485驱动实验(下)
    迅为4412开发板实验_Makefile编译(下)
    迅为IMX6Q开发板QtE5.7编译(上)
    迅为干货 | iTOP-4418/6818移植mt6620热点
    UDT源码剖析(十一)之SendQueue And RecvQueue
    UDT源码剖析(九)之CCC
    UDT源码剖析(十)之Channel
    UDT源码剖析(八)之Cache
  • 原文地址:https://www.cnblogs.com/xiaocao736427460/p/9334890.html
Copyright © 2011-2022 走看看