模块的导入相关知识

昨日内容回顾

  • 异常处理的语法结构

    try: 下跟被监测的子代码

    except: 后跟错误类型子代码为该类型错误解决的提示

    else: 被监测的子代码正常运行时运行的代码

    finally: 无论被监测子代码结果如何,最终均运行finally下方子代码

  • 异常处理其他关键字

    Exception/BaseException 可代替任意错误类型关键字

    assert 断言,断言后条件成立则代码继续运行,不成立则报断言错误

    raise 主动报指定类型错误,并输出指定提示文本

  • 生成器

    定义函数时,在函数中加入yield可以将函数转换为生成器。生成器调用双下next之后开始运行。

    函数运行至yield处后会暂时停顿,再次调用双下next继续向下运行。

    yield类似于return,后跟数据值会返回该数据值,多个数据值组织成元组返回。

    yield冷门用法,与迭代器的send方法一起使用,为yield左侧变量名传数据值。

  • 生成器表达式

    生成器简化写法,类似于列表生成式,使用小括号,括号内填写生成规则。

今日内容概要

  • 索引取值与迭代取值的区别
  • 模块相关基础
  • 模块导入语法
  • 绝对导入与相对导入
  • 文件类型的判断

今日内容详细

索引取值与迭代取值的区别

索引取值:可多次取同一值,可取任意位置数据值,但不能对无序数据进行取值;

迭代取值:同一个数据只能取一次,取值只能从上次结束处往下取,但可以对有序数据取值。

模块相关基础

使用模块不需要明白其内部原理,使用门槛较低,python由于可以调用各种各样的模块,才得以在各种领域都能发光发热,可以说模块才是python的核心竞争力。

python中的模块有四种形式:单个py文件、多个py文件组成的文件夹、已被编译成共享库的C或C++的扩展、使用C编写并链接至python解释器的内部模块。

模块的导入实质上是在当前文件运行时打开另一个py文件,从而使用被调用模块名称空间中的内容。

模块分为内置模块及第三方模块,导入时模块调用顺序:内存>内置模块>系统环境变量。

自定义模块时要注意不可与内置模块名冲突。

模块导入语法

import module_name

使用import导入模块具有以下特点:

  1. 可直接调用被导入模块名称空间内所有变量名;
  2. 导入的模块内的变量名必须通过"模块名.变量名"的形式才能使用;
  3. 导入非内置模块时,只能从当前系统环境变量中导入,没有则报错。

from path import module_name

使用from...import...导入模块具有以下特点:

  1. 可从指定路径导入模块;
  2. 可从指定模块中调用指定的名称并直接使用,但可能与当前文件中名称冲突。

导入模块注意事项

  • 程序一次运行重复导入同一模块时,导入语句只会运行一次。
  • 导入模块时,为方便调用,可以通过as关键字为被导入的模块起别名。
  • 需要导入多个模块时,尽量每个导入语句写一行,导入相似模块时可卸载一行,逗号隔开。
  • 尽量避免循环导入,无法避免时,要保证调用名称前先定义。

绝对导入与相对导入

绝对导入:导入时使用from文件路径导入,文件路径使用绝对路径。

相对导入:被导入的模块中也导入模块时,可以使用在import前方加"."、".."或"..\ .."从被导入模块当前、 上级、上上级目录导入。一般不推荐使用相对导入方式。

文件类型的判断

通过双下name可查看当前文件是否为正在运行的主文件,如果是,则有

__name__ == '__main__'

如果当前文件是被导入的文件,则双下name对应的值是当前文件的模块名。

该操作常用于程序的启动文件,限制程序不能通过调用该程序启动。

posted @ 2022-10-18 19:54  Akazukis  阅读(51)  评论(0)    收藏  举报