python编程-类结构,lambda语法,原始字符串

news2025/2/8 6:34:24

一个类的基本结构包括以下部分:

类名:用来描述具有相同属性和方法的对象的集合。
属性:类变量或实例变量,用于处理类及其实例对象的相关数据。
方法:在类中定义的函数,用于执行特定操作。
构造器:初始化方法,用于在对象实例化时自动调用,通常用来设置对象的初始状态。
析构器:在对象被销毁时自动调用,用于释放资源或执行清理操作。
__str__方法:用于自定义对象的字符串表示形式,方便打印和调试。

class MyClass:
    # 类变量,所有实例共享
    class_variable = 0

    def __init__(self, instance_variable):
        # 构造器,用于初始化实例变量
        self.instance_variable = instance_variable
        MyClass.class_variable += 1  # 每创建一个实例,类变量加1
        print(f"构造器被调用,实例变量: {self.instance_variable}, 类变量: {MyClass.class_variable}")

    def my_method(self):
        # 实例方法,用于执行特定操作
        print(f"实例方法被调用,实例变量: {self.instance_variable}")

    def __del__(self):
        # 析构器,在对象被销毁时自动调用
        MyClass.class_variable -= 1  # 每销毁一个实例,类变量减1
        print(f"析构器被调用,类变量: {MyClass.class_variable}")

    def __str__(self):
        # __str__方法,用于自定义对象的字符串表示形式
        return f"MyClass实例,实例变量: {self.instance_variable}"

# 创建类的实例
my_instance = MyClass(10)
my_instance.my_method()  # 调用实例方法

# 打印对象的字符串表示形式
print(my_instance)

# 删除实例(在Python中,显式删除不是必须的,因为垃圾回收机制会自动处理)
del my_instance

lambda语法

# 使用lambda作为参数传递给map函数,实现对列表中每个元素的平方
lst = [1, 2, 3, 4, 5]
squared_lst = list(map(lambda x: x**2, lst))
print(squared_lst) # [1, 4, 9, 16, 25]
 
# 使用lambda作为参数传递给filter函数,实现对列表中的偶数进行筛选
lst = [1, 2, 3, 4, 5]
even_lst = list(filter(lambda x: x % 2 == 0, lst))
print(even_lst) # [2, 4]
 
# 使用lambda作为参数传递给reduce函数,实现对列表中所有元素的求和
from functools import reduce
lst = [1, 2, 3, 4, 5]
sum = reduce(lambda x, y: x + y, lst)
print(sum) # 15


f 是一个非常常见的 Python 语法,它被称为 "f-string"(formatted string literals)。
在 Python 3.6 及以后的版本中,f-string 被引入作为一种更加方便和灵活的字符串格式化方式。它使用花括号 {} 来包裹变量或表达式,可以直接将它们插入到字符串中。

new_filename = f"{file_base_name}{new_suffix}{file_extension}"

r接字符串 
Python中原始字符串的概念
在Python中,原始字符串(raw string)是一种特殊的字符串表示方式,它通过在字符串前加上r或R来表示。在原始字符串中,反斜杠\会被视为普通字符,而不会作为转义符。这意味着,在原始字符串中,我们不需要对反斜杠进行额外的转义操作。

原始字符串的用途
原始字符串常用于需要大量反斜杠的场景,如文件路径和正则表达式等。使用原始字符串可以使代码更加简洁易读,避免因为转义字符而导致的混淆。

文件路径
在Windows系统中,文件路径通常使用反斜杠来表示。然而,在普通字符串中,反斜杠被用作转义字符,因此在表示文件路径时需要使用双反斜杠。而使用原始字符串,则可以直接使用单个反斜杠来表示文件路径。

# 普通字符串表示文件路径
file_path = "C:\\path\\to\\file.txt"
print(file_path)

# 原始字符串表示文件路径
raw_file_path = r"C:\path\to\file.txt"
print(raw_file_path)


import re

# 普通字符串表示正则表达式
pattern = "\\d{4}-\\d{2}-\\d{2}"
date_str = "Today is 2022-01-01."
match = re.search(pattern, date_str)
print(match.group())

# 原始字符串表示正则表达式
raw_pattern = r"\d{4}-\d{2}-\d{2}"
raw_match = re.search(raw_pattern, date_str)
print(raw_match.group())


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

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

相关文章

C++(进阶五)--STL--用一颗红黑树封装map和set

目录 1.红黑树源码(简略版) 2.模板参数的控制 3.红黑树的结点 4.迭代器的实现 正向迭代器 反向迭代器 5.set的模拟实现 6.map的模拟实现 7.封装完成后的代码 RBTree.h mymap.h myset.h 1.红黑树源码(简略版) 下面我们…

飞算JavaAI :AI + 时代下的行业趋势引领者与推动者

在科技飞速发展的当下,AI 时代正以前所未有的速度重塑着各个行业的格局,而软件开发领域更是这场变革的前沿阵地。在众多创新力量之中,飞算JavaAI 脱颖而出,宛如一颗璀璨的新星,凭借其独树一帜的特性与强大功能&#x…

【重新认识C语言----结构体篇】

目录 -----------------------------------------begin------------------------------------- 引言 1. 结构体的基本概念 1.1 为什么需要结构体? 1.2 结构体的定义 2. 结构体变量的声明与初始化 2.1 声明结构体变量 2.2 初始化结构体变量 3. 结构体成员的访…

一种解决SoC总线功能验证完备性的技术

1. 前言 通过总线将各个IP通过总线连接起来的SoC芯片是未来的大趋势,也是缩短芯片开发周期,抢先进入市场的常用方法。如何确保各个IP是否正确连接到总线上,而且各IP的地址空间分配是否正确,是一件很棘手的事情。本文提出了一种新…

【Linux系统】线程:线程库 / 线程栈 / 线程库源码阅读学习

一、线程库 1、线程库介绍:命名与设计 命名:线程库通常根据其实现目的和平台特性进行命名。例如,POSIX标准定义了Pthreads(POSIX Threads),这是一个广泛使用的线程库规范,适用于多种操作系统。此…

深度剖析 Redis:缓存穿透、击穿与雪崩问题及实战解决方案

一、缓存基本使用逻辑 在应用程序中,为了提高数据访问效率,常常会使用缓存。一般的缓存使用逻辑是:根据 key 去 Redis 查询是否有数据,如果命中就直接返回缓存中的数据;如果缓存不存在,则查询数据库&#…

如何使用el-table的多选框

对el-table再次封装,使得功能更加强大! 本人在使用el-table时,因为用到分页,导致上一页勾选的数据在再次返回时,没有选中,故在原有el-table组件的基础之上再次进行了封装。 1.首先让某些不需要勾选的列表进…

【工具变量】上市公司企业渐进式创新程度及渐进式创新锁定数据(1991-2023年)

测算方式: 参考顶刊《经济研究》孙雅慧(2024)老师的做法,用当期创新和往期创新的内容重叠度作为衡量渐进式创新程度的合理指标。通过搜集海量专利摘要,测算当前专利申请和既有专利的内容相似度,反映企业在…

LM Studio 部署本地大语言模型

一、下载安装 1.搜索:lm studio LM Studio - Discover, download, and run local LLMs 2.下载 3.安装 4.更改成中文 二、下载模型(软件内下载) 1.选择使用代理,否则无法下载 2.更改模型下载目录 默认下载位置 C:\Users\用户名\.lmstudio\models 3.搜…

嵌入式工程师面试经验分享与案例解析

嵌入式工程师岗位受到众多求职者的关注。面试流程严格,技术要求全面,涵盖C/C编程、数据结构与算法、操作系统、嵌入式系统开发、硬件驱动等多个方向。本文将结合真实案例,深入剖析嵌入式工程师的面试流程、常见问题及应对策略,帮助…

英特尔至强服务器CPU销量创14年新低,AMD取得进展

过去几年是英特尔56年历史上最艰难的时期之一。该公司在晶圆代工、消费级处理器和服务器芯片等各个领域都面临困境。随着英特尔重组其晶圆代工业务,新的分析显示其服务器业务的现状和未来前景不容乐观。 英特尔最近发布的10-K文件显示:“数据中心和人工…

判断您的Mac当前使用的是Zsh还是Bash:echo $SHELL、echo $0

要判断您的Mac当前使用的是Zsh还是Bash,可以使用以下方法: 查看默认Shell: 打开“终端”应用程序,然后输入以下命令: echo $SHELL这将显示当前默认使用的Shell。例如,如果输出是/bin/zsh,则说明您使用的是Z…

使用Springboot实现MQTT通信

目录 一、MQ协议 MQTT 特点 MQTT 工作原理 MQTT 主要应用场景 MQTT 配置与注意事项 二、MQTT服务器搭建 三、参考案例 MQTT(Message Queuing Telemetry Transport)是一种基于发布/订阅模型的轻量级消息传输协议,常用于物联网&#xff…

植物大战僵尸融合版(电脑/安卓)

《植物大战僵尸融合版》是一款由B站UP主“蓝飘飘fly”制作的同人策略塔防游戏,基于经典《植物大战僵尸》玩法,加入了独特的植物融合系统。 出于方便,软件是便携版,解压后双击即可畅玩。 游戏主页依旧是植物大战僵尸经典界面。右下…

02DevOps基础环境准备

准备两台Linux的操作系统,最简单的方式就是在本机上使用虚拟机搭建两个操作系统(实际生产环境是两台服务器,虚拟机的方式用于学习使用) 我搭建的两台服务器的ip分别是192.168.1.10、192.168.1.11 192.168.1.10服务器用于安装doc…

苍穹外卖-day12(工作台、数据导出)

工作台Apache POI导出运营数据Excel报表 功能实现:工作台、数据导出 工作台效果图: 数据导出效果图: 在数据统计页面点击数据导出:生成Excel报表 1. 工作台 1.1 需求分析和设计 1.1.1 产品原型 工作台是系统运营的数据看板&…

详解享元模式

引言 在计算机中,内存是非常宝贵的资源,而程序中可能会有大量相似或相同的对象,它们的存在浪费了许多空间。而享元模式通过共享这些对象,从而解决这种问题的。 1.概念 享元模式(Flyweight Pattern):运用共享技术有效地…

openEuler22.03LTS系统升级docker至26.1.4以支持启用ip6tables功能

本文记录了openEuler22.03LTS将docker升级由18.09.0升级至26.1.4的过程(当前docker最新版本为27.5.1,生产环境为保障稳定性,选择升级到上一个大版本26的最新小版本)。 一、现有环境 1、系统版本 [rootlocalhost opt]# cat /etc…

< OS 有关 > Ubuntu 版本升级 实践 24.04 -> 24.10, 安装 .NET

原因: 想安装 .NET 9 去编译 GitHut 项目,这回用不熟悉的 Ubuntu来做,不知道怎么拐去给 Ubuntu 升级,看到现在版本是 24.10 但不是 LTS 版本,记录下升级过程。 一、实践过程: 1. 查看当前版本 命令1: l…

某咨询大数据解决方案介绍(32页PPT)

本文档介绍了一个大数据平台解决方案,旨在解决企业当前面临的数据问题,包括数据定义缺失、重复采集和存储、数据不完整以及缺乏可靠决策依据等。通过引入大数据技术,该方案强调从被动的IT支撑向主动的数据核心服务转型,以实现科学…