• Python模块:基本概念、2种导入方法(import与from...import)和使用


    欢迎关注博主 python老鸟 或 前往 『Python自学网』, 从基础入门免费课程开始,逐步深入学习python全栈体系课程,适合新手入门到精通全栈开发。


    免费专栏传送门:《Python基础教程



    一、模块的介绍

    1.1》模块的概念

    模块是python程序架构的一个核心概念。

    1. 每一个以扩展名py结尾的python源代码文件都是一个模块
    2. 模块名同样也是一个标识符,需要符合标识符的命名规则
    3. 在模块中定义的全局变量、函数、类都是提供给外界直接使用的工具
    4. 模块就好比工具包,要想使用这个工具包中的工具,就需要先的导入这个模块


    二、模块的2种导入方式

    2.1》import导入

    1.语法格式:

    在导入模块时,每个导入的模块应该独占一行(推荐使用)

    1. import 模块名1
    2. import 模块名2

    以下这种(不推荐使用)

    import 模块名1, 模块名2

    2.使用方式

    通过 模块名. 的方式使用模块提供的工具 ——全局变量、函数、类

    3.导入模块后使用工具代码示例

    首先先准备两个模块,md_01_测试模块1和 md_02_测试模块2,然后在demo文件中导入模块并使用工具。

    测试模块文件代码内容如下截图:

     

     

    在demo文件中使用模块中的函数和类——代码如下:

    1. # 导入两个模块
    2. import md_01_测试模块1
    3. import md_02_测试模块2
    4. # 使用模块中类创建对象
    5. a = md_01_测试模块1.A()
    6. print(a)
    7. b = md_02_测试模块2.B()
    8. print(b)
    9. # 调用模块方法
    10. md_01_测试模块1.name()
    11. md_02_测试模块2.name()

    执行结果:

     

    4.扩展(模块别名)

    如果模块的名字太长,可以使用as指定模块的别名(也就是好记的名字),以方便后续在代码中的使用。

    使用 as 指定模块的别名

    import 模块名1 as 模块别名

    注意:模块别名应该符合大驼峰命名法

    改造上面代码:

    1. # 导入两个模块
    2. import md_01_测试模块1 as ModulOne
    3. import md_02_测试模块2 as ModulTwo
    4. # 使用模块中类创建对象
    5. a = ModulOne.A()
    6. print(a)
    7. b = ModulTwo.B()
    8. print(b)
    9. # 调用模块方法
    10. ModulOne.name()
    11. ModulTwo.name()

    执行结果:

     

    2.2》from...import导入

    • import 模块名 是一次性把模块中所有工具全部导入,并且通过模块名./别名.访问
    • 如果希望从某一个模块中导入部分工具,就可以使用from...import的方式

    1.导入局部工具语法:

    1. # 从模块导入某一个工具
    2. from 模块名1 import 工具名

    2.使用方式

    不需要通过 模块名. 就可以直接使用模块提供的工具——全局变量、函数、类

    代码示例:

    1. # 导入模块中的部分工具
    2. from md_01_测试模块1 import A
    3. from md_01_测试模块1 import name
    4. # 直接调用函数、创建对象
    5. name()
    6. a = A()
    7. print(a)

    执行结果:

     

    3.导入同名工具

    注意:

    如果两个模块中存在同名的函数,那么后导入模块的函数覆盖掉先导入的函数

    代码验证:模块1在前模块2在后

    1. from md_01_测试模块1 import name
    2. from md_02_测试模块2 import name
    3. # 直接调用函数
    4. name()

    结果为: 我是 模块2

    代码验证::模块2在前模块1在后

    1. # 分别导入模块中的函数
    2. from md_02_测试模块2 import name
    3. from md_01_测试模块1 import name
    4. # 直接调用函数
    5. name()

    结果为:我是 模块1

    开发习惯:开发时import代码应该统一写在代码的顶部,更容易既是发现冲突,一旦发现冲突,可以使用as关键字给其中一个工具起一个别名。

    代码验证:给其中一个函数起别名调用两个函数

    1. # 分别导入模块中的函数
    2. from md_02_测试模块2 import name as ModuleTwo_name
    3. from md_01_测试模块1 import name
    4. # 直接调用2ge 函数
    5. name()
    6. ModuleTwo_name()

    执行结果:

    我是 模块1

    我是 模块2

    4.导入所有工具 —— from...import *(不推荐使用)

    导入所有工具语法格式:

    1. # 从模块导入所有工具
    2. from 模块名1 import *

    注意:这种方式不推荐使用,因为函数重名并没有任何的提示,一旦出现问题不好排查

    使用工具方式:直接使用,不用 模块名. 的方式

    代码验证:导入一个模块所有工具

    1. from md_01_测试模块1 import *
    2. print(title)
    3. name()
    4. a = A()
    5. print(a)

    执行结果:

    验证:全局变量和函数同名都被后面的覆盖了,单单从代码上不好排查,如图

     

  • 相关阅读:
    数据结构------排序3(快速排序)
    链表相加(二)
    sCrypt 中的 ECDSA 签名验证
    Python学习笔记--生成器
    BDD - 介绍 Behavior-Driven Development 行为驱动开发
    最简单的人脸检测(免费调用百度AI开放平台接口)
    Kafka的存储机制和可靠性
    SpringBoot - 配置 Filter 的几种方式
    如何使用Spring和Thymeleaf轻松地在HTML表单映射上显示多个复选框
    VPN协议是如何工作的
  • 原文地址:https://blog.csdn.net/weixin_48728769/article/details/126920734