D20_1.1装饰器

Posted banbosuiyue

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了D20_1.1装饰器相关的知识,希望对你有一定的参考价值。

定义:装饰用于拓展原来函数功能的一种语法,返回新函数替换旧函数
优点:在不更改原函数代码的前提下,给函数拓展新的功能
语法:@

#1 装饰器的原型
def kuozhan(func):
  def newfunc():
    print("厕所前蓬头垢面")
    func()
    print("厕所后容光焕发")
  return newfunc

def func():
  print("我是高富帅")

func=kuozhan(func) #func=newfunc
func() #调用newfunc

 

@符有两个作用:
(1)把@符下面的函数当成一个参数传递给装饰器
(2)装饰器经过装饰后,把新函数返回,让新函数去替换旧函数(现实在不改变原有代码的前提下拓展新功能)

def kuozhan(func):
def newfunc():
print("厕所前衣衫褴褛")
func()
print("厕所后容光焕发")
return newfunc
@kuozhan #就相当于 func=kuozhan(func)
def func():
print("我是白富美")

 

 

以上是关于D20_1.1装饰器的主要内容,如果未能解决你的问题,请参考以下文章

D20-05 函数闭包 装饰器 06 ..解压序列

python_20_装饰器_高阶函数的使用_01

Python-20_装饰器-01_基础高阶函数闭包

Python类装饰器

32.Python面向对象描述符运算符底层装饰器:闭包-闭包参数-内置装饰器-类装饰器

32.Python面向对象描述符运算符底层装饰器:闭包-闭包参数-内置装饰器-类装饰器