在python中进行装饰时返回函数的原因是什么?

时间:2019-06-25 18:04:18

标签: python python-3.x python-2.7

我想用python装饰函数,但不知道为什么要在代码末尾返回外部函数?

def outer_function():
   word = "hi"
   def inner_function():
       print(word)
   return inner_function
outer_function()

1 个答案:

答案 0 :(得分:2)

装饰器背后的想法是装饰一个功能。这意味着您拥有一个函数,并且想要扩展或稍微修改其行为而不更改函数本身。由于SO并不是一般介绍Python以及特定于装饰器的地方,因此这里有一个装饰器的简单示例,并提供了一篇非常出色的RealPython文章的链接,以更深入地解释它们。

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_whee():
    print("Whee!")

链接:https://realpython.com/primer-on-python-decorators/

希望这对您有所帮助。祝你有美好的一天!