python装饰器函数和函数注解

2023-03-24 00:00:00 函数 注解 装饰

Python装饰器函数是一种特殊的函数,它可以用于修改其他函数的行为。装饰器函数接受一个函数作为参数,并返回一个新的函数,这个新的函数可以使用被修饰的函数,或者在被修饰的函数调用前后进行一些操作。在Python中,装饰器函数通常使用 @ 符号来应用到其他函数上。

下面是一个简单的装饰器函数的示例,它可以用于在函数调用前后打印一条消息:

def my_decorator(func):
    def wrapper():
        print("Before function call")
        func()
        print("After function call")
    return wrapper

@my_decorator
def my_function():
    print("pidancode.com")

my_function()  # 输出:Before function call  pidancode.com  After function call

在上面的示例中,my_decorator() 是一个装饰器函数,它接受一个函数作为参数,并返回一个新的函数 wrapper()。wrapper() 函数在调用被修饰的函数前后分别打印一条消息。@my_decorator 表示应用 my_decorator() 装饰器函数到 my_function() 函数上,这等同于执行了 my_function = my_decorator(my_function)。

除了装饰器函数外,Python还支持函数注解。函数注解是指在函数定义中对参数和返回值添加元数据的方法。注解可以是任何可调用的对象,通常是类型或函数。

下面是一个使用函数注解的示例:

def greet(name: str) -> str:
    return f"Hello, {name}!"

result = greet("pidancode")
print(result)  # 输出:Hello, pidancode!

在上面的示例中,我们使用 name: str 和 -> str 这样的语法来添加注解。name: str 表示参数 name 应该是一个字符串类型,-> str 表示函数应该返回一个字符串类型。

总结:Python装饰器函数是一种特殊的函数,它可以用于修改其他函数的行为。Python中的装饰器函数通常使用 @ 符号来应用到其他函数上。函数注解是一种在函数定义中添加元数据的方法,通常用于指定参数和返回值的类型。注解可以是任何可调用的对象。

相关文章