Python高级编程技巧

函数式编程

函数式编程是一种编程范式,它强调函数的纯洁性和不可变性。在Python中,可以使用匿名函数、高阶函数和列表推导式等特性来实现函数式编程。

# 示例:使用lambda函数和map函数计算列表中每个元素的平方
my_list = [1, 2, 3, 4, 5]
squares = list(map(lambda x: x ** 2, my_list))
print(squares) # [1, 4, 9, 16, 25]

装饰器

装饰器是一种用于修改函数行为的语法结构。在Python中,可以使用装饰器来扩展函数的功能,例如添加日志、性能统计等。

# 示例:定义一个装饰器,用于统计函数执行时间
import time

def timer(func):
def wrapper(*args, **kwargs):
start_time = time.time()
result = func(*args, **kwargs)
end_time = time.time()
print(f'{func.__name__}执行时间:{end_time - start_time:.2f}s')
return result
return wrapper

@timer
def my_func():
time.sleep(1)
print('Hello, World!')

my_func() # 执行结果:my_func执行时间:1.00s

生成器

生成器是一种特殊的迭代器,它可以用于惰性计算。在Python中,可以使用生成器函数或生成器表达式来创建生成器。

# 示例:定义一个生成器函数,用于斐波那契数列的生成器
def fibonacci():
a, b = 0, 1
while True:
yield a
a, b = b, a + b

# 示例:使用生成器表达式生成一个生成器,用于计算100以内的偶数的平方
even_squares = (x ** 2 for x in range(100) if x % 2 == 0)
print(list(even_squares)) # [0, 4, 16, 36, 64, 100, 144, 196, 256, 324, 400, 484, 576, 676, 784, 900, 1024, 1156, 1296, 1444, 1600, 1764, 1936, 2116, 2304, 2500, 2704, 2916, 3136, 3364, 3600, 3844, 4096, 4356, 4624, 4900, 5184, 5476, 5776, 6084, 6400, 6724, 7056, 7396, 7744, 8100, 8464, 8836, 9216, 9604]