0%

Python3 静态方法和类方法:面向对象编程的高级工具

在 Python 面向对象编程中,除了常见的实例方法,还存在两种特殊方法:静态方法(Static Method)类方法(Class Method)。它们与实例方法的主要区别在于调用方式和访问权限,适用于不同的场景。本文将详细讲解这两种方法的定义、使用场景和核心区别。

实例方法:回顾基础

在介绍静态方法和类方法前,先回顾最常用的实例方法,以便对比理解:

  • 实例方法是定义在类中的普通方法,第一个参数必须是 self(代表实例本身)
  • 必须通过类的实例调用,可访问和修改实例属性及类属性
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Person:
species = "人类" # 类属性

def __init__(self, name):
self.name = name # 实例属性

# 实例方法:第一个参数是 self
def greet(self):
# 可访问实例属性(self.name)和类属性(self.species)
return f"你好,我是{self.name},属于{self.species}"

# 必须创建实例才能调用实例方法
person = Person("张三")
print(person.greet()) # 你好,我是张三,属于人类

类方法(@classmethod)

类方法是与类本身相关的方法,而非与实例相关。它通过 @classmethod 装饰器定义,主要用于操作类属性或创建类的实例。

阅读全文 »

Python3 高阶函数:函数式编程的核心工具

高阶函数(Higher-order function)是函数式编程的核心概念,指接受函数作为参数返回函数作为结果的函数。Python 3 内置了多个实用的高阶函数,如 map()filter()reduce() 等,它们能大幅简化代码,提高可读性和效率。本文从基础概念到实战应用,全面讲解 Python 高阶函数的使用。

高阶函数的基本概念

1. 函数作为参数

在 Python 中,函数是第一类对象(First-class object),可以像其他数据类型一样被传递。当一个函数接受另一个函数作为参数时,它就是高阶函数。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 普通函数:计算平方
def square(x):
return x **2

# 高阶函数:接受函数作为参数,并应用到列表元素
def apply_func(func, numbers):
result = []
for num in numbers:
result.append(func(num)) # 调用传入的函数
return result

# 使用高阶函数:将 square 函数作为参数传入
nums = [1, 2, 3, 4]
print(apply_func(square, nums)) # [1, 4, 9, 16]

2. 函数作为返回值

高阶函数还可以返回一个函数,实现 “动态生成函数” 的效果。

阅读全文 »

Python3 模式匹配:从基础到高级的匹配技巧

模式匹配是 Python 中处理数据结构和文本的重要技术,从简单的字符串匹配到复杂的结构化数据匹配都有广泛应用。Python 3 提供了多种模式匹配工具,包括基础的字符串方法、re 模块的正则表达式,以及 Python 3.10 引入的结构化模式匹配(match-case 语句)。本文将系统介绍这些技术,帮助你高效处理各类匹配场景。

基础字符串模式匹配

Python 字符串内置了多种方法,可直接用于简单的模式匹配需求,无需引入额外模块。

1. 子串检查(包含性匹配)

  • in 运算符:检查子串是否存在于字符串中
  • str.find(sub):返回子串首次出现的索引(未找到返回 -1)
  • str.count(sub):统计子串出现的次数
1
2
3
4
5
6
7
8
9
10
11
12
13
s = "hello world, hello python"

# 检查是否包含子串
print("hello" in s) # True
print("java" in s) # False

# 查找子串位置
print(s.find("hello")) # 0(首次出现)
print(s.find("hello", 5)) # 13(从索引5开始查找)

# 统计出现次数
print(s.count("hello")) # 2
print(s.count("l")) # 5

2. 前缀 / 后缀匹配

  • str.startswith(prefix):检查字符串是否以指定前缀开头
  • str.endswith(suffix):检查字符串是否以指定后缀结尾
阅读全文 »

Python3 字符串操作详解:从基础到高级技巧

字符串是 Python 中最常用的数据类型之一,用于表示文本信息。Python 提供了丰富的字符串操作方法,从基础的拼接、切片到高级的正则匹配,覆盖了几乎所有文本处理场景。本文系统讲解 Python3 字符串的核心操作,帮助你高效处理文本数据。

字符串基础:定义与特性

1. 字符串定义

Python 中字符串可以用单引号(')、双引号(")或三引号('''""")定义,三引号可用于多行字符串:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 单引号定义
str1 = 'Hello Python'

# 双引号定义(与单引号无本质区别)
str2 = "Hello Python"

# 三引号定义多行字符串
str3 = '''第一行
第二行
第三行'''

print(str3)
# 输出:
# 第一行
# 第二行
# 第三行

2. 字符串特性

  • 不可变性:字符串创建后不能修改单个字符(修改会创建新字符串)

    1
    2
    s = "hello"
    # s[0] = 'H' # 报错:'str' object does not support item assignment
  • 序列类型:字符串是字符的序列,支持索引([])和切片([:])操作

  • 可迭代性:可直接用 for 循环遍历每个字符

基础操作:拼接、重复与转换

1. 字符串拼接

  • 使用 + 运算符拼接字符串(仅能拼接字符串类型)
  • 使用 ,print() 中拼接(会自动添加空格)
  • 使用 * 重复字符串
阅读全文 »

Python 3 循环详解:for 循环、while 循环与实战技巧

循环是编程中用于 “重复执行一段代码” 的核心语法,Python 3 提供两种主流循环结构:for 循环(适合 “已知循环次数或遍历序列” 场景)和 while 循环(适合 “未知循环次数,依赖条件判断” 场景)。本文从 “基础语法→进阶用法→循环控制→实战案例” 四个维度,系统讲解 Python 3 循环的使用方法,帮你高效处理重复逻辑。

for 循环:遍历序列或可迭代对象

for 循环的核心是 “遍历”—— 按顺序获取可迭代对象(如列表、字符串、字典)中的每个元素,执行对应代码块,直到所有元素处理完毕。

1. 基础语法

1
2
3
4
5
6
for 变量名 in 可迭代对象:
# 每次遍历获取一个元素,赋值给“变量名”,执行代码块
代码语句1
代码语句2
# 循环结束后,执行后续代码
后续代码
关键概念:
  • 可迭代对象:能被for循环遍历的对象,常见类型包括:
    • 序列:列表(list)、字符串(str)、元组(tuple);
    • 集合:集合(set)、字典(dict,默认遍历键);
    • 其他:range 对象(生成整数序列)、文件对象等。
  • 缩进:循环体内的代码必须缩进(推荐 4 个空格),缩进不一致会报 IndentationError

2. 常见遍历场景

场景 1:遍历列表(list)
阅读全文 »