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__':
  • 相关阅读:
    Umbraco中更换IndexSet中的NodeType后,搜索页面没有做出对应更改的效果
    Umbraco部署到IIS中权限问题(back office没有权限新建template)
    C控制台密码输入:输入一个字符显示一个星号
    C项目实践--家庭财务管理系统
    C 编程中fseek、ftell的用法总结
    C ++模板的声明和实现为何要放在头文件中?
    头文件与cpp文件为什么要分开写
    printf、sprintf与fprintf 的用法区分
    C编程中fread 、fwrite 用法总结
    C从控制台(stdin)输入带空格的字符串到字符数组中
  • 原文地址:https://www.cnblogs.com/kingyanan/p/9199500.html
Copyright © 2011-2022 走看看