zoukankan      html  css  js  c++  java
  • Python模块

    模块

    模块的四种形式

    一、什么是模块

    模块是一系列工能的集合体,而函数是某一个功能的集合体,因此模块可以看成是一堆函数的集合体。一个py文件内部就可以放一堆函数。所以一个py文件可以看成一个模块。

    二、模块的四种形式

    • 自定义模块:自己写的各种功能的文件
    • 第三方模块:需要通过下载,功能众多的文件
    • 内置模块:python解释器自带的内置函数
    • 包:把一系列模块组织到一起的文件夹

    三、为什么要使用模块:

    1. 可以让代码变得更加简洁
    2. 让代码变得更加容易
    3. 提升开发速度

    四、如何使用模块

    一般使用import和from...import来导入模块

    import和from...import

    一、import 模块名

    什么是模块名:

    上述说如果我们编写的一个py文件,那么这个py文件也是一个模块。

    例如我们取名abs.py,那么模块名就叫abs

    #import语法
    import abs
    abs.方法名
    

    使用import时,这个语句其实做了三件事情

    1. 通过语句,在内存中创建一个模块的空间
    2. 执行对应模块文件,将执行中所产生的丢入模块在内存中的空间
    3. 在当前执行文件中拿到一个模块名

    二、form模块名 import具体的功能

    说完了import的语法,那么其实还有另一种导入的方式 form...import...方法

    #语法
    from abs impoty abs
    abs=10
    

    使用import时,这个语句其实做了三件事情

    1. 通过语句,在内存中创建一个模块的空间
    2. 执行对应模块文件,将执行中所产生的丢入模块在内存中的空间
    3. 在当前执行文件的名称空间中拿到一个名字,该名字直接指向模块中的某一个方法(名字),意味着可以不用加前缀
      • 优点:不用加前缀
      • 缺点:容易与文件产生冲突

    三、impor和form import的异同

    相同点:

    1. 两者都会执行模块对应的文件,两者都会产生模块的名称空间
    2. 两者调用功能时,需要跑到定义时寻找作用域关系,与调用位置无关

    不同点

    1. import需要加前缀;from...import...不需要加前缀

    循环导入

    一、什么是循环导入

    当我们创建了两个py文件,一个为a.py,一个为b.py

    #循环导入
    ###a.py
    from b import x
    y=20
    print(x)
    
    ###b.py
    from a import y
    x=10
    print(y)
    

    当执行上述代码时,我们会发现上述代码会产生报错等,其原因时因为进入了死循环导致

    但是当我们将俩个py文件中的变量拿出来以后,会发现死循环结束了

    原因:当我们执行a.py时,系统自上而下运行,当导包时,系统会自动打开,同时b.py文件会在内存打开一个空间,这个时候由于没有找到x的值,又开始导入x就进入了死循环

    python文件的两种用途

    • 脚本:一个文件就是一整个程序,用来被执行
    • 模块,文件中存放多种功能,用来被导入使用

    一、什么是包:

    包就是有一堆功能性的执行文件的文件夹

    二、为什么要有包?

    模块的第一个版本只有10个功能,但是未来在扩展版本的时候,模块名和用法应该最好不要去修改,但是这只是对使用者友好,而由于版本扩展,文件越来越大,模块设计者对模块的管理、维护会越来越复杂,因此我们可以使用包来扩展模块的功能。

    三、如何用包?

    3.1 模块和包

    导入模块发生的三件事:

    1. 创建一个包的名称空间
    2. 执行py文件,将执行过程中产生的名字存放于名称空间中。
    3. 在当前执行文件中拿到一个名字aaa,aaa是指向包的名称空间的

    导入包发生的三件事:

    1. 创建一个包的名称空间
    2. 由于包是一个文件夹,无法执行包,因此执行包下的.py文件,将执行过程中产生的名字存放于包名称空间中(即包名称空间中存放的名字都是来自于.py)
    3. 在当前执行文件中拿到一个名字aaa,aaa是指向包的名称空间的

    导入包就是在导入包下的.py,并且可以使用以下两种方式导入:

    1. import ...
    2. from ... import...
  • 相关阅读:
    Android——点击对话框上按钮不关闭对话框
    超酷的Android 侧滑(双向滑动菜单)效果
    Android快速开发不可或缺的11个工具类(下载)
    Android ——真机调试
    Android程序完全退出的三种方法
    android 添加桌面快捷方式
    最全Android开发常用工具类
    成为Java GC专家(5)—Java性能调优原则
    JVM调优总结 + jstat 分析
    mysql中max_allowed_packet参数的配置方法(避免大数据写入或者更新失败)
  • 原文地址:https://www.cnblogs.com/ledgua/p/11358656.html
Copyright © 2011-2022 走看看