Python
文章平均质量分 81
知识的宝藏
10年测试老司机,先后在某知名互联网公司担任过测试组长、某龙头物流公司担任测试开发、高级测试工程师,现在某知名手机厂担任高级测试工程师一职,熟悉领域包括功能测试、性能测试、自动化测试、接口测试、测试开发、数据分析、网络爬虫、Java语言、Python语言、持续集成、单元测试、质量体系建设等。
展开
-
Python 文档注释规范详解
在软件开发中,良好的文档注释不仅是对代码的一种自我解释,更是提高代码可读性和维护性的关键。本文将详细介绍Python文档注释的最佳实践,包括PEP 257标准、docstrings的书写、类型注解以及如何利用工具生成高质量的文档。通过遵循PEP 257规范,合理使用类型注解,并结合Sphinx等工具自动生成文档,可以让你的Python项目更加专业和完善。Sphinx是一个流行的文档生成工具,支持从Python源代码中提取docstrings并生成HTML、PDF等多种格式的文档。文件夹,并在其中创建。原创 2024-09-06 06:00:00 · 589 阅读 · 0 评论 -
python circular import python循环导入问题
遇到的问题是因为模块之间存在循环导入(circular import),导致了。循环导入是指两个或多个模块相互导入对方,如模块A导入了模块B的方法,模块B又导入了模块A的方法,从而导致其中一个模块在完全初始化之前就被另一个模块尝试导入,进而引发错误。原创 2024-09-06 01:00:00 · 387 阅读 · 0 评论 -
Python 读写 Excel 文件:创建、遍历、更新与样式处理
本文详细介绍了如何使用 Python 进行 Excel 文件的创建、遍历、更新、删除以及样式处理等操作。通过openpyxl库,可以轻松地读写 Excel 文件,并对其进行各种操作。掌握这些基本操作对于处理各种数据存储和分析任务非常重要。通过上述示例和步骤,您可以熟练地使用 Python 来管理和操作 Excel 文件,从而提高数据处理的效率和灵活性。无论是进行简单的数据读写还是复杂的文件操作,Python 都能提供强大的支持。原创 2024-09-04 09:26:00 · 728 阅读 · 0 评论 -
Python 读写 JSON 文件:解析、读写、数据更新与删除
本文介绍了如何使用 Python 进行 JSON 文件的读写、数据更新与删除等操作。通过json模块提供的loadsdumpsload和dump方法,可以轻松地处理 JSON 数据。掌握这些基本操作对于处理各种数据交换和存储任务非常重要。通过上述示例和步骤,您可以熟练地使用 Python 来管理和操作 JSON 文件,从而提高数据处理的效率和灵活性。无论是进行简单的数据读写还是复杂的文件操作,Python 都能提供强大的支持。原创 2024-09-05 07:00:00 · 588 阅读 · 0 评论 -
使用多线程解决读写数据不一致的问题
多线程是一种常见的并发编程模型,在许多应用场景中具有显著的优势。下面详细介绍多线程的使用场景及其优势。原创 2024-09-05 07:00:00 · 1090 阅读 · 0 评论 -
如何分析Python代码中是否包含重复代码
在软件开发过程中,代码的可维护性和可读性是非常重要的。重复代码不仅会使项目变得臃肿,还可能导致未来维护困难,因为一处修改需要在多处进行,容易引入新的错误。本文将探讨如何使用静态代码分析工具来检测Python中的重复代码,并展示如何通过工具进行检查的具体过程和结果。原创 2024-09-03 07:00:00 · 909 阅读 · 0 评论 -
Your code has been rated at 6.24/10 (previous run: 5.83/10, +0.41)
收到代码评分为6.24/10,并且相比之前的评分5.83/10有所提升(+0.41),说明你的代码质量有所改善,但仍有一定的提升空间。为了进一步优化代码,特别是针对日志记录中使用懒惰格式化的问题,我们可以继续完善代码并确保遵循最佳实践。原创 2024-09-02 20:33:25 · 398 阅读 · 0 评论 -
Use lazy % formatting in logging functions (65:4) [logging-fstring-interpolation]
使用懒惰格式化不仅提高了性能,还能确保在不必要的情况下不会进行复杂的计算。对于Python的日志记录,推荐使用格式化,尤其是在日志消息中包含复杂表达式或函数调用时。这样可以确保只有在日志级别允许记录时才会进行实际的格式化操作。原创 2024-09-02 20:30:47 · 239 阅读 · 0 评论 -
使用Python进行Mock测试详解(含Web API接口Mock)
Mock对象是用于替代真实对象的模拟对象,它记录了所有被调用的方法及其参数,并且可以被配置来返回期望的值或引发异常。隔离测试:在测试某个组件时,隔离其与其他组件的依赖关系。模拟行为:模拟外部系统的响应或行为,以便于测试。验证调用:验证函数或方法是否被正确地调用。Mock测试是一种强大的单元测试技术,它能够帮助我们有效地测试代码,并确保代码的正确性和可靠性。通过本文的学习,你应该已经掌握了如何使用Python的库来进行Mock测试。原创 2024-08-28 00:30:00 · 608 阅读 · 0 评论 -
Python 如何设置Excel中某一列下拉选项的筛选选项
要在Excel中设置某一列的下拉选项(也称为数据验证或数据有效性),你可以使用Python的openpyxl库。openpyxl是一个用于读写Excel 2010 xlsx/xlsm/xltx/xltm文件的库。下面是一个简单的示例,展示如何在Excel的一个单元格范围内设置下拉列表。原创 2024-08-27 02:00:00 · 829 阅读 · 0 评论 -
如何保证Python list中值的唯一性
要保证Python列表中值的唯一性,可以使用几种不同的方法。其中最简单和常用的方法是利用集合(set),因为集合不允许重复元素。原创 2024-08-26 20:45:32 · 285 阅读 · 0 评论 -
Python Lambda 表达式详解
lambda表达式是Python中一种非常有用的特性,尤其是在需要简短、一次性的函数时。尽管它们在某些情况下不如普通函数灵活,但在函数式编程中却有着不可替代的地位。合理使用lambda表达式可以使代码更加简洁高效。然而,在编写复杂逻辑时,使用传统的def定义的函数通常更为合适,因为它们提供了更多的控制结构和更好的可读性。原创 2024-08-23 21:20:54 · 1283 阅读 · 0 评论 -
Python排序指南
Python 列表有一个内置的方法可以直接修改列表。还有一个内置函数,它会从一个可迭代对象构建一个新的排序列表。在本文档中,我们将探索使用Python对数据进行排序的各种技术。原创 2023-12-09 10:37:42 · 373 阅读 · 0 评论 -
Python socket套接字编程指南
套接字几乎无处不在,但是它却是被误解最严重的技术之一。这是一篇简单的套接字概述。并不是一篇真正的教程 —— 你需要做更多的事情才能让它工作起来。其中也并没有涵盖细节(细节会有很多),但是我希望它能提供足够的背景知识,让你像模像样的开始使用套接字。原创 2023-12-09 10:36:17 · 105 阅读 · 0 评论 -
Python 打印项目树结构
有时候需要查看项目的树形结构这时候打印项目的树形结构就很重要了,以下是实现代码。原创 2023-12-09 10:29:53 · 171 阅读 · 0 评论 -
Python 日志指南
定义你自己的级别是可能的,但不一定是必要的,因为现有级别是根据实践经验选择的。但是,如果你确信需要自定义级别,那么在执行此操作时应特别小心,如果你正在开发库,则定义自定义级别可能是一个非常糟糕的主意。这是因为如果多个库作者都定义了他们自己的自定义级别,那么使用开发人员很难控制和解释这些多个库的日志记录输出,因为给定的数值对于不同的库可能意味着不同的东西。原创 2023-12-08 22:24:43 · 1013 阅读 · 0 评论 -
python pydoc生成API文档
默认的主机名为 'localhost' 但是如果你希望能从其他机器上搜索该服务器,你可能会想要改变服务器所响应的主机名。的参数像是一个路径(即包含所在操作系统的路径分隔符,例如 Unix 的正斜杠),并且其指向一个现有的 Python 源文件,则会为该文件生成文档内容。生成的文档可在控制台中显示为文本页面,提供给 Web 浏览器访问或者保存为 HTML 文件。的参数可以为函数、模块、包,或带点号的对模块中的类、方法或函数以及包中的模块的引用。对于模块、类、函数和方法,显示的文档内容取自文档字符串(即。原创 2023-12-07 20:54:28 · 1069 阅读 · 7 评论 -
打包Python项目
本教程将指导您如何打包一个简单的Python项目。它将 向您展示如何添加必要的文件和结构来创建包,如何 构建包,以及如何将其上传到Python包索引(PyPI)。尖端如果您在运行本教程中的命令时遇到问题,请复制命令 及其输出,然后在存储库上, GitHub.我们会尽力帮助你!原创 2023-12-07 20:15:45 · 518 阅读 · 0 评论 -
使用Sphinx生成Selenium 自动化项目API文档
最近需要把项目生成API文档,在网上找了下发现sphinx这个框架用的比较多,研究了一下,发现还是挺赞的,只不过纸上得来终觉浅,绝知此事要躬行,别人的项目结构啥的和自己不一样,网上基本都是单目录的层级,但是实际项目往往都会有比较深的层级关系,所以还是踩了不少坑,在此结合自己的项目总结一下。原创 2023-12-06 21:03:43 · 1672 阅读 · 0 评论 -
zipfile --- 使用ZIP存档
ZIP 文件格式是一个常用的归档与压缩标准。这个模块提供了创建、读取、写入、添加及列出 ZIP 文件的工具。任何对此模块的进阶使用都将需要理解此格式,其定义参见。此模块目前不能处理分卷 ZIP 文件。它可以处理使用 ZIP64 扩展(超过 4 GB 的 ZIP 文件)的 ZIP 文件。它支持解密 ZIP 归档中的加密文件,但是目前不能创建一个加密的文件。解密非常慢,因为它是使用原生 Python 而不是 C 实现的。这个模块定义了以下内容:exception为损坏的 ZIP 文件抛出的错误。原创 2023-12-04 20:30:19 · 241 阅读 · 0 评论 -
pickle --- Python 对象序列化
3.8 新版功能.有时,可能不够灵活。特别是当我们想要基于对象类型以外的其他规则来对封存进行定制,或是当我们想要对函数和类的封存进行定制的时候。对于那些情况,可能要基于Pickler类进行子类化并实现方法。此方法可返回任意的归约元组 (参见它也可以选择返回来回退到传统行为。如果同时定义了和,则方法具有优先权。备注出于性能理由,可能不会为以下对象调用NoneTrueFalse, 以及intfloatbytesstrdictsetfrozensetlist和tuple的具体实例。原创 2023-12-04 20:28:39 · 94 阅读 · 0 评论 -
Python 内置异常
在 Python 中,所有异常必须为一个派生自的类的实例。在带有提及一个特定类的子句的语句中,该子句也会处理任何派生自该类的异常类(但不处理它所派生出的异常类)。通过子类化创建的两个不相关异常类永远是不等效的,既使它们具有相同的名称。下面列出的内置异常可通过解释器或内置函数来生成。除非另有说明,它们都会具有一个提示导致错误详细原因的“关联值”。这可以是一个字符串或由多个信息项(例如一个错误码和一个解释错误的字符串)组成的元组。关联值通常会作为参数被传递给异常类的构造器。用户代码可以引发内置异常。原创 2023-12-03 16:04:32 · 956 阅读 · 0 评论 -
os.path --- 常用路径操作
如果一个路径名称以两个斜杠开始,则开始字符之后的第一个部分将以具体实现所定义的方式来解读,但是超过两个开始字符则将被视为单个字符。在系统中的 ctime,在有些系统(比如 Unix)上,它是元数据的最后修改时间,其他系统(比如 Windows)上,它是。要规范大小写,请使用。在 Unix 上,它就是以斜杠开头,而在 Windows 上,它可以是去掉驱动器号后以斜杠(或反斜杠)开头。对于无效的路径可能引发错误,例如,没有可识别的驱动器的路径,但在不支持 Dev 驱动器的平台上将返回。但是,如果操作的路径。原创 2023-12-01 21:17:08 · 141 阅读 · 0 评论 -
pathlib --- 面向对象的文件系统路径
3.4 新版功能.该模块提供表示文件系统路径的类,其语义适用于不同的操作系统。路径类被分为提供纯计算操作而没有 I/O 的,以及从纯路径继承而来但提供 I/O 操作的。如果以前从未用过此模块,或不确定哪个类适合完成任务,那要用的可能就是。它在运行代码的平台上实例化为。在一些用例中纯路径很有用,例如:如果你想要在 Unix 设备上操作 Windows 路径(或者相反)。你不应在 Unix 上实例化一个,但是你可以实例化。你只想操作路径但不想实际访问操作系统。原创 2023-12-01 21:15:03 · 184 阅读 · 0 评论 -
序列类型 --- list, tuple, range
有三种基本序列类型:list, tuple 和 range 对象。为处理和而特别定制的附加序列类型会在专门的小节中描述。原创 2023-11-28 21:08:32 · 542 阅读 · 0 评论 -
Python 将列表拼接为一个字符串,Python join
请注意,`join()` 方法只能用于连接字符串元素的列表。在上面的示例中,我们使用空格作为连接符,将列表中的字符串元素连接成一个字符串。你可以根据需要选择不同的连接符,例如空字符串 `''`、逗号 `','` 等。如果你想将单个列表中的数据拼接成一个字符串,可以使用 `join()` 方法。`join()` 方法将列表中的字符串元素连接起来,并返回一个新的字符串。在上面的示例中,我们使用 `map()` 函数将列表中的整数元素转换为字符串,然后再使用 `join()` 方法拼接成一个字符串。原创 2023-11-24 20:53:06 · 289 阅读 · 0 评论 -
Python 模块
为了让一个库能以隐藏源代码的形式分发(通过将所有源代码变为编译后的版本),编译后的模块必须放在源目录而非缓存目录中,并且源目录绝不能包含同名的未编译的源模块。这意味着,脚本所在的目录如果有和标准库同名的文件,那么加载的是该目录里的,而不是标准库的。就像使用模块可以让不同模块的作者不必担心彼此的全局变量名一样,使用带点号模块名也可以让 NumPy 或 Pillow 等多模块包的作者也不必担心彼此的模块名冲突。如果被放置于一个模块的最高层级,则被导入的模块名称会被添加到该模块的全局命名空间。原创 2023-11-24 21:16:24 · 198 阅读 · 0 评论 -
Python数据结构
本章深入讲解之前学过的一些内容,同时,还增加了新的知识点。原创 2023-11-24 21:14:54 · 576 阅读 · 0 评论 -
python文本
切片索引的默认值很有用;(下标访问),第一个字符的索引是 0。对于使用非负索引的切片,如果两个索引都不越界,切片长度就是起止索引之差。第一行数字是字符串中索引 0...6 的位置,第二行数字是对应的负数索引位置。字符串中将自动包括行结束符,但也可以在换行的地方添加一个。要标示引号本身,我们需要对它进行“转义”,即在前面加一个。注意,-0 和 0 一样,因此,负数索引从 -1 开始。,第一个字符的左侧标为 0,最后一个字符的右侧标为。注意,输出结果包含切片开始,但不包含切片结束。类型表示,称为“字符串”)。原创 2023-11-22 22:14:13 · 290 阅读 · 0 评论 -
python数字
最好把该变量当作只读类型。不要为它显式赋值,否则会创建一个同名独立局部变量,该变量会用它的魔法行为屏蔽内置变量。解释器像一个简单的计算器:你可以输入一个表达式,它将给出结果值。表达式语法很直观:运算符。Python 全面支持浮点数;,Python 还支持其他数字类型,例如。交互模式下,上次输出的表达式会赋给变量。本教程后半部分将介绍更多数字类型。可被用来执行算术运算;) 总是返回浮点数。要计算余数你可以使用。) 可被用来进行分组。得到一个整数结果你可以使用。Python 还内置支持。原创 2023-11-22 21:51:20 · 136 阅读 · 0 评论 -
Selenium登录关键字封装
这样一个登录就写了9行!这还是简单的登录场景,如果更复杂的场景这样做显然不太合适~可以将登录单独封装一个关键字,抛开打开浏览器访问网址等步骤来说一个登录要定位的至少包含3个元素:用户输入、密码输入、登录按钮,之前封装的关键字都是一个“关键字”,一个“定位方式”,一个“定位值” ,实际Python eval()函数执行是并不知道你这里写的是什么,因此没有必要要一一对应,也可以一个关键字:多个定位方式。我这边是用英文逗号分割的,当然也可以用其他符号但是不要和定位表达式里的值冲突就行了,不然会引发错误。原创 2023-04-29 20:58:43 · 684 阅读 · 0 评论 -
Python 循环技巧
【代码】Python 循环技巧。原创 2023-04-26 20:43:15 · 950 阅读 · 0 评论 -
Python match 语句
match语句接受一个表达式,并将其值与作为一个或多个case块给出的连续模式进行比较。这表面上类似于C、Java或JavaScript(以及许多其他语言)中的switch语句,但更类似于Rust或Haskell等语言中的模式匹配。只有第一个匹配的模式才会被执行,它还可以将值中的组件(序列元素或对象属性)提取到变量中。第一个模式有两个字面值,可以看作是上面所示字面值模式的扩展。读取模式的推荐方式是将它们看做是你会在赋值操作左侧放置的内容的扩展形式,以便理解各个变量将会被设置的值。模式可以使用命名常量。原创 2023-04-16 22:03:42 · 968 阅读 · 0 评论 -
Python 异常处理之try except else
来为不同的异常指定处理程序。处理程序只处理对应的。子句时发生了异常,则跳过该子句中剩下的部分。,然后跳到 try/except 代码块之后继续执行。子句添加额外的代码要好,可以避免意外捕获非。中指定的异常不匹配,则它会被传递到外部的。如果没有找到处理程序,则它是一个。关键字后指定的异常相匹配,则会执行。且执行将终止并输出如上所示的消息。,该子句如果存在,它必须放在所有。语句内其他处理程序中的异常。关键字之间的(多行)语句)。中发生的异常,而不处理同一。语句保护的代码触发的异常。如果没有触发异常,则跳过。原创 2023-04-14 21:25:14 · 558 阅读 · 0 评论 -
Webdriver Manager 简介
最近看selenium官方文档发现示例有用到webdriver_manager 这个模块,以为是selenium官方的包,结果导入示例代码显示包没引入,然后才知道是第三方库,库如其名:webdriver管理,就是自动管理selenium webdriver 二进制驱动文件的,不需要手动去下载然后在代码里硬编码。默认情况下,所有驱动程序二进制文件都保存在 user.home/.wdm 文件夹中。而且每次发布新版本的驱动程序时,您都应该一遍又一遍地重复所有步骤。以 Chrome 为例。原创 2022-09-26 12:21:17 · 1136 阅读 · 0 评论 -
python 3爬取allitebook电子书
import requestsimport pandas as pdimport unittestimport reimport osfrom time import sleepfrom lxml import etreefrom unittest import TestCaseclass Spider(TestCase): book_name = [] b...原创 2019-06-28 19:09:16 · 740 阅读 · 0 评论