• python中的模块


      在前面的学习中,其实我们已经接触过模块引入的方法:import random,所以我们可以使用 random 里面一系列的函数。在python里面有多种引入方式,这就是本节我们要学习的重点。

    在了解模块导入之前,我们需要了解一下什么是模块:

    • Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。
    • 模块让你能够有逻辑地组织你的 Python 代码段。
    • 把相关的代码分配到一个模块里能让你的代码更好用,更易懂。
    • 模块能定义函数,类和变量,模块里也能包含可执行的代码。

    那么,模块主要有哪些种类呢,常见的模块包括一下三种:

    • 内置模块:python 自带的模块,如 import os
    • 第三方库模块:别人写好的模块,需要安装,pip install request
    • 自定义模块:自己写的模块,通常放在包里面 from 包 import 模块

    1、import 的用法

    import的作用:利用 import 引入对应的模块,方便我们去调用模块里面的函数或者是类、变量。

    我们新建一个test_package,并且在这个package下面分别存在一个sub_a的package以及一个sub_b的package,一个sub.py的模块文件,在sub_a 以及 sub_b里面分别有a.py 和 b.py文件,如下所示:

     在 a.py 和 b.py 里面分别有一个加法函数、减法函数,代码如下所示:

     面我们学习如何使用import来引入a.py、b.py文件在sub.py里面完成调用,示范代码如下:

     运行后的结果如下:

     通过上面的引用,我们可以总结出如下内容:

    • import 是引入模块文件,要具体到模块名称。
    • 使用import方式导入模块,在调用时,要从根目录下面开始写。
    • import 方式如果有多个层级时,中间用 . 号来进行连接。 

    2、from...import...的用法

    文件的路径与前面一致,这里不再赘述,我们仍然在sub.py中调用a.py以及b.py文件,

    1)第一种方法,具体到模块名。

    示范代码如下:

    •  我们不难发现如果使用了from ...import...,那么可以具体到模块名,在引用的时候就不用加前面的层级模块了,直接从import后面的a模块名开始调用,就可以完成调用。
    • 引入时可以具体到模块名。

    2)第二种方法,具体到函数

    示范代码如下:

    •  import后面可以具体到函数名。
    • 完成引用后,可以直接调用函数。

    所以从代码的简洁性以及高效性角度考虑,比较推荐大家使用from...import 方式来导入模块。

    另外,为大家扩展两个文件导入的小知识点,大家可以自行尝试。

    • from ... import * :从模块当中导入所有的代码,就是可能会和这个模块里的函数重名
    • from ... import sth as other :重命名,取别名,避免重复

    3、补充知识

    最后,为大家补充一个关于__name__的小知识:

    • __name__:是表示当前文件的模块名
    • 通过模块导入形式运行的,模块名称就是这个文件名====>>__name__ 就是文件名、模块名
    • 直接运行的文件、脚本,__name__ 就不是文件名、模块名称,它是固定的:__main__

    这个知识经常用来我们自己做代码调试的时候使用,示范代码如下:

     即只有在本模块调试时,才会运行这段测试代码,当被其他模块调用时,这段测试代码将不被执行。在自动化测试过程中我们将会常用__name__来进行代码的调试。

  • 相关阅读:
    10分钟轻松设置出 A+ 评分的 HTTP/2 网站
    GGSN与SGSN简介
    cocos游戏开发小白教程网站
    cocos2d-x JS 字符串
    cocos2d-x android工程接入第三方支付宝SDK
    pyCharm编辑器激活使用
    cocos2d-x C++ iOS工程集成第三方支付宝支付功能
    (已解决)在linux的虚拟机上安装vmware tools(实现windows与虚拟机之间的文件交互复制粘贴)
    虚拟机 liunx系统以 root 身份登录权限
    mac系统搭建SVN版本控制
  • 原文地址:https://www.cnblogs.com/Cactus-xiaot/p/12883868.html
Copyright © 2020-2023  润新知