模块和面向过程编程

一:模块介绍

     一:可以被当作脚本去执行
     二:可以被当作模块导入 

    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 具体的功能 

     4,首次导入模块的注意事项

           1,  import 模块名

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

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

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

            # import spam #spam=spam=模块名称空间的内存地址

            2,from 模块名  import ......

             # from ... import ...首次导入也发生了三件事:
             #1、以模块为准创造一个模块的名称空间
             #2、执行模块对应的文件,将执行过程中产生的名字都丢到模块的名称空间

             #3、在当前执行文件的名称空间中拿到一个名字,该名字直接指向模块中的某一个名字,意味着可以不用加任何前缀               而直接使用

             注意两者导入的优缺点:

              # from .... import ... 对比 import 。。。
              # 优点:不用加前缀,代码更为精简

              # 缺点:容易与当前执行文件中名称空间中的名字冲突     

             两者相同点:
             # 1、都会执行模块对应的文件,都会产生模块的名称空间
             # 2、调用功能时,需要跑到定义时寻找作用域关系,与调用位置无关
             # 不同点
             # 1、一种需要加前缀,一种不需要加前缀     

                x=1

               def f1():
                    print('from f1')
               def f2():
                    print('from f2')
               print(__name__)
               # 在aaa.py被直接执行的时候__name__== '__main__'
               # 在aaa.py被当作模块导入的时候__name__== 'aaa'
               # 在aaa.py被直接执行的时候调用f1跟f2
               # f1()
               # f2()
               # 在aaa.py被当作模块导入的时候不调用f1跟f2
               # if __name__ == '__main__':
               #     f1()
               #     f2()


二:模块的搜索路径

        一个py文件就是一个模块,在导入时必须从某一个文件夹下找到该py文件
        模块的搜索路径指的就是在导入模块时需要检索的文件夹们
        导入模块时查找模块的顺序是:
        1、先从内存中已经导入的模块中寻找
        2、内置的模块
        3、环境变量sys.path中找

             强调:sys.path的第一个值是当前执行文件的所在的文件夹


三:面向过程思想

    核心过程二字,过程指的是解决问题的步骤,即先干什么、再干什么、然后干什么...
    基于该思想编写程序就好比在设计一条流水线,是一种机械式的思维方式
    优点
           复杂的问题流程化、进而简单化(大多使用在程序的框架设计上)
    缺点

          扩展性极差




   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值