当前位置: 首页 > article >正文

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

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

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

class MyClass:# 类变量,所有实例共享class_variable = 0def __init__(self, instance_variable):# 构造器,用于初始化实例变量self.instance_variable = instance_variableMyClass.class_variable += 1  # 每创建一个实例,类变量加1print(f"构造器被调用,实例变量: {self.instance_variable}, 类变量: {MyClass.class_variable}")def my_method(self):# 实例方法,用于执行特定操作print(f"实例方法被调用,实例变量: {self.instance_variable}")def __del__(self):# 析构器,在对象被销毁时自动调用MyClass.class_variable -= 1  # 每销毁一个实例,类变量减1print(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())

相关文章:

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

一个类的基本结构包括以下部分: 类名:用来描述具有相同属性和方法的对象的集合。 属性:类变量或实例变量,用于处理类及其实例对象的相关数据。 方法:在类中定义的函数,用于执行特定操作。 构造器&#xff…...

C++:代码常见规范1

头文件包含 (1)先系统头文件&#xff0c;后用户头文件&#xff1a;这是一个良好的编程习惯。系统头文件通常包含标准库的定义&#xff0c;而用户头文件则包含项目特定的定义。将系统头文件放在前面可以避免因用户头文件中的定义与系统头文件冲突而导致的问题。 #include <…...

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

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

DeepSeek服务器繁忙问题的原因分析与解决方案

一、引言 随着人工智能技术的飞速发展&#xff0c;DeepSeek 等语言模型在众多领域得到了广泛应用。然而&#xff0c;在春节这段时间的使用过程中&#xff0c;用户常常遭遇服务器繁忙的问题&#xff0c;这不仅影响了用户的使用体验&#xff0c;也在一定程度上限制了模型的推广和…...

《手札·开源篇》数字化转型助力永磁电机企业降本增效:快速设计软件如何让研发效率提升40%?

数字化转型助力永磁电机企业降本增效&#xff1a;快速设计软件如何让研发效率提升40%&#xff1f; 一、痛点&#xff1a;传统研发模式正在吃掉企业的利润 永磁电机行业面临两大挑战&#xff1a; 研发周期长&#xff1a;一款新电机从设计到量产需6-12个月&#xff0c;电磁计算…...

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

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

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

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

解决错误:CondaHTTPError: HTTP 000 CONNECTION FAILED for url

解决错误&#xff1a;CondaHTTPError: HTTP 000 CONNECTION FAILED for url 查看channels:vim ~/.condarcshow_channel_urls: true channels:- http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/- http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/…...

使用令牌桶算法通过redis实现限流

令牌桶算法是一种常用的限流算法&#xff0c;它可以平滑地控制请求的处理速率。在 Java 中结合 Redis 实现令牌桶算法&#xff0c;可以利用 Redis 的原子操作来保证多节点环境下的限流效果。 一 实现思路 初始化令牌桶&#xff1a;在 Redis 中存储令牌桶的相关信息&#xff0…...

Docker的进程和Cgroup概念

Docker的进程和Cgroup概念 容器里的进程组织或关系0号进程&#xff1a;containerd-shim1号进程&#xff1a;容器内的第一个进程进程收到信号后的三种反应两个特权信号在容器内执行 kill 命令的行为 Cgroup 介绍CPU Cgroup 中与 CFS 相关的参数Kubernetes 中的资源管理memory cg…...

Day68:类的多态

在面向对象编程(OOP)中,多态(Polymorphism)是指不同类的对象对同一消息作出响应的能力。换句话说,多态允许不同类的对象使用相同的方法名,但实现不同的行为。多态是通过继承和方法重写来实现的,通常可以分为方法重写和接口重载。 在 Python 中,多态常常通过方法重写来…...

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

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

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

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

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

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

如何使用el-table的多选框

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

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

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

LM Studio 部署本地大语言模型

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

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

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

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

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

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

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

使用Springboot实现MQTT通信

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

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

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

02DevOps基础环境准备

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

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

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

说一下 Tcp 粘包是怎么产生的?

TCP 粘包是什么&#xff1f; TCP 粘包&#xff08;TCP Packet Merging&#xff09; 是指多个小的数据包在 TCP 传输过程中被合并在一起&#xff0c;接收方读取时无法正确分辨数据边界&#xff0c;导致数据解析错误。 TCP 是流式协议&#xff0c;没有数据包的概念&#xff0c;…...

详解享元模式

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

第18章 不可变对象设计模式(Java高并发编程详解:多线程与系统设计)

1.线程安全 所谓共享的资源&#xff0c;是指在多个线程同时对其进行访问的情况下&#xff0c;各线程都会使其发生变化&#xff0c;而线程安全性的主要目的就在于在受控的并发访问中防止数据发生变化。除了使用synchronized关键字同步对资源的写操作之外&#xff0c; 还可以在线…...

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

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

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

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

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

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