【Python】函数装饰器的简单使用

Python中的函数

Python中的函数也是一种基本类型,我们可以将一个函数作为参数传入另一个函数中:

def fun(f):
    print("执行了fun函数");
    f()


def my():
    print("换欢迎进入我的Python程序");

fun(my)

运行结果:

执行了fun函数

换欢迎进入我的Python程序

函数装饰器

现在,我们将上面的代码用函数装饰器改写一下:

def fun(f):
    print("执行了fun函数");
    f()


@fun
def my():
    print("换欢迎进入我的Python程序");

运行结果

执行了fun函数

换欢迎进入我的Python程序

还可以向装饰器其中传入其他参数:

def fun(st):
    print("执行了fun函数")
    def wrap(f):
        print("你传入的是:" + st)
        f()
    return wrap

@fun("你好")
def my():
    print("欢迎进入我的Python程序");

运行结果

执行了fun函数

你传入的是:你好

欢迎进入我的Python程序

有些看不懂?没关系,我们将上面的代码转换成普通函数的格式:

def fun(st):
    print("执行了fun函数")
    def wrap(f):
        print("你传入的是:" + st)
        f()
    return wrap


def my():
    print("欢迎进入我的Python程序");
    
fun("你好")(my)

解释:

  • fun函数接收一个字符串参数,当我们调用fun函数时,它会返回一个函数 wrap。
  • 这个wrap函数接收一个函数类型的参数并调用它。

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_34802028/article/details/107568381