python编程-类结构,lambda语法,原始字符串
一个类的基本结构包括以下部分:
类名:用来描述具有相同属性和方法的对象的集合。
属性:类变量或实例变量,用于处理类及其实例对象的相关数据。
方法:在类中定义的函数,用于执行特定操作。
构造器:初始化方法,用于在对象实例化时自动调用,通常用来设置对象的初始状态。
析构器:在对象被销毁时自动调用,用于释放资源或执行清理操作。
__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())