面向过程+模块使用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)

    

原文地址:https://www.cnblogs.com/xiaocao736427460/p/9334890.html