如何用Python实现一个装饰器来增强函数功能?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2294个文字,预计阅读时间需要10分钟。
装饰器其实本质上是我一个老大难。这个知识点就放在那里,但拖延症作祟。实际上,在平时写脚本的过程中,这个知识点用到的不多。但在面试时,这却可能是一个高频问题。一题。
装饰器其实一直是我的一个"老大难"。这个知识点就放在那,但是拖延症。。。
其实在平常写写脚本的过程中,这个知识点你可能用到不多
但在面试的时候,这可是一个高频问题。
一、什么是装饰器
所谓的装饰器,其实就是通过装饰器函数,来修改原函数的一些功能,使得原函数不需要修改。
这一句话理解起来可能没那么轻松,那先来看一个"傻瓜"函数。
放心,绝对不是"Hello World"!
def hello(): print("你好,装饰器")
肿么样,木骗你吧? 哈哈,这个函数不用运行相信大家都知道输出结果:"你好,装饰器"。
那如果我想让hello()函数再实现个其他功能,比如多打印一句话。
那么,可以这样"增强"一下:
def my_decorator(func): def wrapper(): print("这是装饰后具有的新输出") func() return wrapper def hello(): print("你好,装饰器") hello = my_decorator(hello) hello()
运行结果:
这是装饰后具有的新输出
你好,装饰器
[Finished in 0.1s]
很显然,这个"增强"没啥作用,但是可以帮助理解装饰器。
本文共计2294个文字,预计阅读时间需要10分钟。
装饰器其实本质上是我一个老大难。这个知识点就放在那里,但拖延症作祟。实际上,在平时写脚本的过程中,这个知识点用到的不多。但在面试时,这却可能是一个高频问题。一题。
装饰器其实一直是我的一个"老大难"。这个知识点就放在那,但是拖延症。。。
其实在平常写写脚本的过程中,这个知识点你可能用到不多
但在面试的时候,这可是一个高频问题。
一、什么是装饰器
所谓的装饰器,其实就是通过装饰器函数,来修改原函数的一些功能,使得原函数不需要修改。
这一句话理解起来可能没那么轻松,那先来看一个"傻瓜"函数。
放心,绝对不是"Hello World"!
def hello(): print("你好,装饰器")
肿么样,木骗你吧? 哈哈,这个函数不用运行相信大家都知道输出结果:"你好,装饰器"。
那如果我想让hello()函数再实现个其他功能,比如多打印一句话。
那么,可以这样"增强"一下:
def my_decorator(func): def wrapper(): print("这是装饰后具有的新输出") func() return wrapper def hello(): print("你好,装饰器") hello = my_decorator(hello) hello()
运行结果:
这是装饰后具有的新输出
你好,装饰器
[Finished in 0.1s]
很显然,这个"增强"没啥作用,但是可以帮助理解装饰器。

