Python学习:高级特性1
在Python的奇妙世界里,高级特性就像是那些隐藏在角落里的神秘力量,等待着勇敢的程序员去发掘。装饰器、生成器和迭代器,这些听起来就像是古老魔法书中的咒语,但它们其实是Python中强大的编程工具。让我们一起揭开这些高级特性的神秘面纱,看看它们如何让我们的代码变得更加强大和灵活。
1. 装饰器
装饰器在Python中是一种神奇的存在,它可以让你在不修改原有函数代码的情况下,给函数添加新的功能。这就像是给函数穿上了一件神奇的外衣,让它拥有了超能力。
基本装饰器:
装饰器本质上是一个函数,它接受一个函数作为参数并返回一个新的函数。
def my_decorator(func):
def wrapper():
print("Something is happening before the function is called.")
func()
print("Something is happening after the function is called.")
return wrapper
@my_decorator
def say_hello():
print("Hello!")
say_hello()
在这个例子中,my_decorator
是一个装饰器,它打印一条消息,然后调用原始函数,再打印另一条消息。say_hello
函数被my_decorator
装饰,所以当我们调用say_hello()
时,实际上是在调用wrapper()
函数。
带参数的装饰器:
有时候,你可能想要创建一个可以接受参数的装饰器。
def my_decorator_with_args(arg):
def decorator(func):
def wrapper():
print(f"Something is happening before the function is called with arg {
arg}."