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

    一、面向过程编程

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

    优点
    复杂的问题流程化、进而简单化
    缺点
    扩展性极差

    二、模块的使用

    1、什么是模块
    模块是一系列功能的集合体
    常见的模块形式(自定义模块、第三方模块、内置模块):
    1、一个module.py文件就是一个模块,文件名是module.py,而模块名是module
    2、一个包含有__init__.py文件的文件夹也是模块

    3、已被编译为共享库或DLL的C或C++扩展
    4、使用C编写并链接到python解释器的内置模块


    2、为什么要用模块
    1、用第三方或者内置的模块是一种拿来主义,可以极大地提升开发效率
    2、自定义模块即将我们自己程序中需要用到的公共的功能写入一个python文件
    然后程序的各部分组件可以通过导入的方式来引用/重用自定义模块中的功能



    3、如何用模块
    导入的方式有两种
    import 模块名
    from 模块名 import 具体的功能




    import首次导入模块发生了3件事:
    1、以模块为准创造一个模块的名称空间
    2、执行模块对应的文件,将执行过程中产生的名字都丢到模块的名称空间
    3、在当前执行文件中拿到一个模块名
    import spam

    之后的重复导入会直接引用之前创造好的结果,不会重复执行模块的文件
    import spam #spam=spam=模块名称空间的内存地址



    from ... import ...首次导入也发生了三件事:
    1、以模块为准创造一个模块的名称空间
    2、执行模块对应的文件,将执行过程中产生的名字都丢到模块的名称空间
    3、在当前执行文件的名称空间中拿到一个名字,该名字直接指向模块中的某一个名字,意味着可以不用加任何前缀而直接使用


    两者区别:
    唯一的区别就是:使用from...import...则是将spam中的名字直接导入到当前的名称空间中,所以在当前名称空间中,直接使用名字就可以了、无需加前缀:spam.
    
    from...import...的方式有好处也有坏处
        好处:使用起来方便了
        坏处:容易与当前执行文件中的名字冲突

    4、模块循环导入问题:
    一个py文件就是一个模块,在导入时必须从某一个文件夹下找到该py文件
    模块的搜索路径指的就是在导入模块时需要检索的文件夹们

    导入模块时查找模块的顺序是:
    1、先从内存中已经导入的模块中寻找
    2、内置的模块
    3、环境变量sys.path中找
    强调:sys.path的第一个值是当前执行文件的所在的文件夹


    5、py文件的两种用途:
    一:脚本,一个文件就是整个程序,用来被执行
        二:模块,文件中存放着一堆功能,用来被导入使用
    #python为我们内置了全局变量__name__,
        当文件被当做脚本执行时:__name__ 等于'__main__'
        当文件被当做模块导入时:__name__等于模块名
    
    #作用:用来控制.py文件在不同的应用场景下执行不同的逻辑
        if __name__ == '__main__':
  • 相关阅读:
    013.ES6 -对象字面量增强型写法
    012. ES6
    011. ES6 语法
    10. 9. Vue 计算属性的setter和getter 以及 计算属性的缓存讲解
    4. Spring MVC 数据响应方式
    3. SpringMVC 组件解析
    9. Vue 计算属性
    【洛谷 2984】给巧克力
    【洛谷 1821】捉迷藏 Hide and Seek
    【洛谷 1821】银牛派对Silver Cow Party
  • 原文地址:https://www.cnblogs.com/kingyanan/p/9199500.html
Copyright © 2011-2022 走看看