Python每日三道经典面试题(十三)

1.Python中的unittest是什么?

unittest是Python内置的一个测试框架,也是Python标准库的一部分。它被设计用于支持自动化测试,包括单元测试、集成测试以及一些系统测试。unittest提供了丰富的测试构建、测试用例组织和测试运行功能,其使用和概念在很大程度上受到了JUnit的启发,并且适用于任何Python项目。使用unittest框架,开发者可以编写测试用例、测试套件(test suites),以及运行这些测试并收集测试结果。

unittest的主要特性

  1. 测试组织unittest允许以类的形式组织测试用例。这些类继承自unittest.TestCase基类。
  2. 断言方法:提供了一系列断言方法用于检查条件是否为真,例如assertEqual(a, b)用于检查ab是否相等。
  3. 测试发现:支持自动发现测试模块和测试用例,使得管理大型测试集合变得简单。
  4. 测试固件:允许使用setUp()tearDown()方法为测试用例设置前置条件和清理工作。
  5. 命令行接口:通过Python命令行工具运行测试,支持多种命令行选项来定制测试运行方式。

基本用法

一个简单的unittest示例,演示了如何定义一个测试用例:

import unittestclass MyTest(unittest.TestCase):def test_addition(self):self.assertEqual(1 + 1, 2)def test_subtraction(self):self.assertEqual(2 - 1, 1)if __name__ == '__main__':unittest.main()

在这个例子中,MyTest类继承了unittest.TestCase。类中的方法test_additiontest_subtraction都是测试用例,用于测试加法和减法运算。使用self.assertEqual()断言方法来验证运算结果是否符合预期。最后,如果直接运行这个脚本,unittest.main()将会执行测试类中的所有测试用例。

总结

unittest是一个功能全面的测试框架,它支持从简单的单元测试到复杂的功能测试的编写和运行。通过组织良好的测试用例和广泛使用断言,unittest帮助开发者确保代码的正确性和稳定性,是Python项目中实现自动化测试的重要工具。

2.在Python中什么是slicing?

在Python中,slicing(切片)是一种操作,允许你从序列类型(如列表、元组、字符串等)中提取部分元素。切片操作非常灵活和强大,它通过指定索引范围来获取序列的一个子集。

切片的基本语法

切片操作的基本语法是sequence[start:stop:step],其中:

  • start是切片开始的位置索引(包含该位置的元素),如果省略,默认为序列的起始位置(对于正向切片是0,对于反向切片是-1)。
  • stop是切片结束的位置索引(不包含该位置的元素),如果省略,默认为序列的结束位置。
  • step是切片的步长,指每次跳过的元素数量。如果省略,默认为1。步长可以是负数,这时候会从序列的尾部向头部切片。

切片操作的例子

列表切片
my_list = [0, 1, 2, 3, 4, 5]
print(my_list[2:5])  # 输出: [2, 3, 4]
print(my_list[:3])   # 输出: [0, 1, 2]
print(my_list[3:])   # 输出: [3, 4, 5]
print(my_list[::2])  # 输出: [0, 2, 4],步长为2
print(my_list[::-1]) # 输出: [5, 4, 3, 2, 1, 0],反向切片
字符串切片
my_string = "Hello, world!"
print(my_string[1:5])  # 输出: 'ello'
print(my_string[:5])   # 输出: 'Hello'
print(my_string[7:])   # 输出: 'world!'
print(my_string[::-1]) # 输出: '!dlrow ,olleH',反向切片
元组切片
my_tuple = (0, 1, 2, 3, 4, 5)
print(my_tuple[2:5])  # 输出: (2, 3, 4)

注意事项

  • 切片操作返回一个新的序列,原序列不会被修改。
  • 索引可以是负数,表示从序列的末尾开始计算位置。
  • 如果startstop的值超出了序列的边界,Python不会抛出错误,而是会尽量返回一个合理的结果。

通过切片,你可以非常灵活地从序列中提取需要的部分,这在数据处理和分析中非常有用。

3.在Python中什么是构造器?

在Python中,构造器(Constructor)是一个特殊的方法,用于在创建对象时初始化类的新实例。构造器在对象创建时自动调用。Python中的构造器方法被称为__init__

构造器的基本特征

  • 构造器名称为__init__
  • 它是一个特殊的方法,用于类的初始化操作。
  • 当创建类的实例时自动调用该方法。
  • 可以接受参数(除了self之外的参数),这些参数在创建类的实例时传递,用于初始化对象的状态。

构造器的示例

假设有一个Person类,我们想在创建Person的实例时初始化人的名字和年龄,可以这样定义构造器:

class Person:def __init__(self, name, age):self.name = nameself.age = age# 创建Person类的一个实例
person = Person("Alice", 30)print(person.name)  # 输出: Alice
print(person.age)   # 输出: 30

在这个例子中,__init__方法接受三个参数:selfnameageself是一个对当前对象实例的引用,而nameage是传递给构造器的参数,用于初始化对象的属性。

注意事项

  • __init__并不是创建对象的方法,真正创建对象实例的是__new__方法,但__new__通常不需要被显式地定义或覆盖,除非你在处理高级用例,比如创建单例或控制对象创建的过程。__init__方法主要用于初始化对象。
  • 构造器可以有任意数量的参数,也可以没有参数(除了self),这取决于你在初始化对象时需要传递多少数据。

通过使用构造器,你可以确保类的实例在创建时具有有效的初始状态,从而使得对象一旦创建就是可用的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/753107.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

蓝桥杯可撤销并查集|查找|合并|撤销(C++)

前置知识 蓝桥杯并查集|路径压缩|合并优化|按秩合并|合根植物(C)-CSDN博客 可撤销并查集 关键注意 可撤销并查集的撤销功能如何实现可撤销并查集能不能用路径压缩 可撤销并查集(Reversible Union-Find)是一种扩展了标准并查集(Union-Find)数据结构的数据结构,它允…

高中数学:指数、对数、幂函数综合(拔高)

一、需要掌握的重要函数 1、第一组(记住) 例题 1、判断奇偶性 2、代值定象限 2、第二组(记住) 以下几个函数都是奇函数 3、常用知识点 1、找对称中心或对称轴 上加下减,左加右减 2、奇偶函数组合后的奇偶性 …

Excel数字签名技术总结

Excel数字签名 Excel数字签名【商业化】产品对比: Excel数字签名产品对比冰蓝科技GroupDocsconholdatemesciusaspose官网冰蓝科技 e-iceblue | 您的办公文档开发技术专家 | C#/VB.Net Excel, Word, PowerPoint, PDF, Barcode 组件Document …

京东获得JD商品详情 API

公共参数 名称类型必须描述keyString是免费申请调用key(必须以GET方式拼接在URL中)secretString是调用密钥api_nameString是API接口名称(包括在请求地址中)[item_search,item_get,item_search_shop等]cacheString否[yes,no]默认y…

python基础——对序列的通用操作【+和*以及in 和 切片操作】

📝前言: 我们已经学习了python数据容器中的列表,元组以及字符串。而他们都属于序列 (序列是指:内容连续,有序,可以用下标索引访问的数据容器) 在之前已经介绍了不少操作方法&#xf…

一文解读ISO26262安全标准:初步危害分析PHA

一文解读ISO26262安全标准:初步危害分析PHA 1 PHA的意义2 如何进行PHA? PHA是Preliminary Hazard Analysis的简称。 UE是undesired event的简称。 1 PHA的意义 PHA活动要在项目开发的前期完成,主要目标是识别功能性 UE ,并对其进…

中高级前端工程师都需要熟悉的技能--前端缓存

前言 web缓存是高级前端工程师必修技能。是我们变成大牛过程中绕不开的知识点。 文章会尽量用通俗易懂的言语来细说web缓存的概念和用处。 本期文章的大纲是 什么是web缓存(前端缓存) 缓存可以解决什么问题?他的缺点是什么? …

Spring MVC接收param参数(直接接收、注解接收、集合接收、实体接收)

1. 直接接值 只要形参数名和类型与传递参数相同,即可自动接收! Controller RequestMapping("param") public class ParamController {/*** 前端请求: http://localhost:8080/param/value?namexx&age18** 可以利用形参列表,直接接收前端传递的param…

Vue3-安装

Vue.js 是什么? Vue 是一套用于构建用户界面的渐进式框架. 与其他大型框架不同的是, Vue 被设计为可以自底向上逐层应用. Vue 的核心库只关注视图层, 不仅容易上手, 还便于与第三方库或既有项目整合. 另一方面, 当与现代化的工具链以及各种支持类库结合使用时, Vue 也完全能够…

数据结构 之 七大排序 (持续更新ing...)

下面算法编写的均是按照由小到大顺序进行排序版本 选择排序 思想: 每次遍历待排序元素的最大下标,与待排序元素中最后一个元素交换位置(此时需要设置一个临时变量来存放下标) 时间复杂度--O(n^2)空间复杂度--O(1)稳定性--不稳定 代…

TCP - 传输控制协议

TCP - 传输控制协议 是一种面向连接的可靠传输协议。 特点: TCP是面向连接(虚连接)的传输层协议。 每一条TCP连接有且只能有两个端点。 可靠、有序、无丢弃和不重复。 TCP协议提供全双工通讯。 发送缓存 存放发送方TCP准备发送的数据。T…

FDMC8200中文资料PDF数据手册引脚图参数功能介绍概述参数规格参数产品手册

产品概述: 此器件在一个双 Power 33 (3 mm X 3 mm MLP) 封装中包括了两个特制的 N 沟道 MOSFET。 开关节点已经内部连接,可实现同步降压转换器的轻松布置和布线。 控制 MOSFET (Q1) 和同步 MOSFET (Q2) 可提供最佳功率效率。 产品特性: Q1…

Appium官方文档常用方法介绍

Appium命令 Appium 官方文档 看云 创建Session // Java DesiredCapabilities desiredCapabilities new DesiredCapabilities(); desiredCapabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, "10.3"); desiredCapabilities.setCapability(Mobile…

计算机一级word 文字处理理论+实操试题

计算机一级word 文字处理理论实操试题 单选题: 1、在Word编辑状态下,要将另一文档的内容全部添加在当前文档的当前光标处,应选择的操作是依次单击______。 A.“文件”选项卡和“打开”项 B.“文件”选项卡和“新建”项 C.“插入”选项卡…

1194: 最简单的题(python)

收藏 难度:简单 标签:暂无标签 题目描述 孩纸,珍惜吧!这可能会是有史以来最简单的题目了、 有这样的函数F(i)i*i*i*i3*i*i*i2*i*i8*i9;请你找出他所有的整数函数值。 嘻嘻,不是这么的难题 !…

外贸业务员的工作时间安排,抓紧收藏!

平时很多外贸业务员应该都差不多,大部分时间会用来不知所措的摸鱼,关于工作内容并无规划。今天给大家分享一个工作时间安排,赶紧码住! 销售联系潜在客户时间计划表 目标:在不给潜在客户造成压力的情况下,建立联系并推…

AI人工智能时代,Java从业者必学科目2

精品课程推荐:Java版数据结构和算法AI算法课程 AI人工智能时代,Java从业者必学科目 精品课程推荐:Java版数据结构和算法AI算法课程 【点击开始学习】 学习地址:https://class.imooc.com/sale/fullstackalgo 在当今数字时代&a…

WEB前端作业一

作业1:生成表格 模版 <!DOCTYPE html> <html><title>作业表格一</title><body><h1><b>工商银行电子汇款单</b></h1><p><table border"1" cellspacing"0"><tr><td colspan&qu…

week07day03(power bi dax公式 零售数据业务分析)

一. 切片器(筛选)相关的三个函数 1.all &#xff08;all后面的数据意思是 不受其影响&#xff09; #ALL 筛选的是 筛选器 或 切片器#计算 销售金额 &#xff0c;并且 不受到 门店ID 控制 计算金额 CALCULATE(SUM(销售表[金额]),ALL(销售表[门店ID]))#计算 销售金额 &#x…

最小化战斗力差距——算法思路

题目链接&#xff1a;1.最小化战斗力差距 - 蓝桥云课 (lanqiao.cn) 可分析&#xff0c;把一个数组分成两组&#xff0c;求一组的最大值与另一组的最小值的差值的绝对值最小&#xff0c;可以转换为求任意两个相邻数字之间的最小插值的绝对值。 可看图示&#xff1a; package lan…