写点什么

软件测试 / 测试开发丨 Python 模块与包 学习笔记

作者:测试人
  • 2023-08-14
    北京
  • 本文字数:1247 字

    阅读完需:约 4 分钟

免费领取:测试资料+测试用例+简历模板+测试文档

本文为霍格沃兹测试开发学社学员学习笔记分享

原文链接:https://ceshiren.com/t/topic/26232

python 的程序结构

组成:

  • package

  • module

  • function

模块

  • 模块是在代码量变得相当⼤了之后,为了将需要重复使⽤的有组织的代码放在⼀起,这部分代码可以被其他程序引⽤,从⽽使⽤该模块⾥的函数等功能,引⽤的过程叫做导⼊(import)

  • 在 python 中,⼀个⽂件(以“.py”为后缀名的⽂件)就叫做⼀个模块

  • 导⼊模块的写法:⽅法⼀:import modul1[,module2…[,moduleN]]⽅法⼆:from module import <name[,name2,….[,nameN]]>

模块分类

  • 系统内置模块 sys、time、json 模块等等;

  • 第三⽅的开源模块通过 pip install 进⾏安装,有开源的代码

  • ⾃定义模块⾃⼰写的模块,对某段逻辑或某些函数进⾏封装后供其他函数调⽤。

如何使⽤模块

  1. 系统内置模块

  • Python 安装好之后⾃带的⼀些⾮常有⽤的模块 (sys,os,time,json 模块等)

 import sys print("调⽤了sys模块") for i in sys.argv: print(i)
复制代码
  • 注意点 1:使⽤关键词“import + 模块名称” 导⼊某⼀个模块

  • 注意点 2:同⼀个模块不管你执⾏了多少次“import”,只会被导⼊⼀次

  • 注意点 3:import 应该被放在代码的顶端

  1. 第三⽅开源模块

  • 是通过包管理⼯具 pip 完成的。必须先知道该库的名称,可以在官⽹或者 pypi


    上搜索,⽐如 MySQL 驱动程序,Web 框架 Flask,科学计算 Numpy 等

  • NumPy(Numerical Python) 是 Python 语⾔的⼀个扩展程序库,⽀持⼤量的维


    度数组与矩阵运算,此外也针对数组运算提供⼤量的数学函数库

  • pip install numpy

  1. ⾃定义模块

  • ⾃定义模块是⾃⼰写的模块,对某段逻辑或某些函数进⾏封装后供其他函数调⽤。

  • 模块由变量,函数,或类组成举例:创建⼀个模块 baidu.py 创建⼀个调⽤模块 index.py

  • 注意:⾃定义模块的名字⼀定不能和系统内置的模块重名,否则将不能再导⼊系统的内置模块。

  • 例如,⾃定义了⼀个 sys.py 模块后,那系统的 sys 模块就不能使⽤

导⼊模块

  • import 模块名 引⼊⼀个完整的模块

  • from <模块名> import <⽅法 | 变量 | 类> 引⼊模块中的⼀个或多个指定部分

  • from <模块名> import * 导⼊模块⾥⾯的所有的函数,变量

  • 区别:import 导⼊模块,每次使⽤模块中的函数,都要确定是哪个模块 from…import * 导⼊模块,每次使⽤模块中的函数,直接使⽤函数就可以了(因为已经知道该函数是那个模块中的了)

作⽤域

搜索路径当你导⼊⼀个模块,Python 解析器对模块位置的搜索顺序是:

  1. 当前⽬录

  2. 如果不在当前⽬录,Python 则搜索在 shell 变量 PYTHONPATH 下的每个⽬录

  3. 如果都找不到,Python 会察看默认路径。UNIX 下,默认路径⼀般为/usr/local/lib/python/

模块搜索路径存储在 system 模块的 sys.path 变量中。变量⾥包含当前⽬录,PYTHONPATH 和由安装过程决定的默认⽬录。

import sysprint(sys.path)
复制代码

使⽤模块总结

使⽤模块的好处

  • 提⾼代码的可维护性

  • ⼀个模块编写完毕之后,其他模块直接调⽤,不⽤再从零开始写代码了,节约了⼯作时间;

  • 避免函数名称和变量名称重复,在不同的模块中可以存在相同名字的函数名和变量名(不要和系统内置的模块名称重复)

用户头像

测试人

关注

专注于软件测试开发 2022-08-29 加入

霍格沃兹测试开发学社,测试人社区:https://ceshiren.com/t/topic/22284

评论

发布
暂无评论
软件测试/测试开发丨Python 模块与包 学习笔记_Python_测试人_InfoQ写作社区