美文网首页
2019-05-26python装饰器到底是什么?

2019-05-26python装饰器到底是什么?

作者: 测序九月 | 来源:发表于2019-05-26 17:16 被阅读0次

装饰器例子

参考语法

def mydecorator(func):
    def wrapper(*args,**kargs):
        '''wrapper function'''
        print("in wrapper")
        func(*args,**kargs)
    return wrapper

@ mydecorator
def example():
    """example function"""
    print("in example")

装饰器是什么?
个人理解,装饰器,是python中一种写法的定义。他仍然符合python的基本语法,只是一种框架,
比如上述代码,我想在example函数输出前,输出in wrapper这句话
我可以怎么做?

print("in wrapper")
example()

但是我想在多个函数比如还有example2,example3前输入同样的话

 def example_all(func):
    print("in wrapper")
    func()

编程思想之一,定义函数,减少重复写代码

example_all(example)

然后调用

map(example_all,(example,))

函数多就直接map

example = example_all(example)

以后调用example实际是调用example_all(example)

我们在定义example_all时调用了func(),我们知道func函数自身要传入参数,
直接传参?

>>>def mydecorator2(func):
    print("haha")
    func(*args,**kargs)

>>> mydecorator2(example)()
haha
Traceback (most recent call last):
  File "<pyshell#42>", line 1, in <module>
    mydecorator2(example)()
  File "<pyshell#41>", line 3, in mydecorator2
    func(*args,**kargs)
NameError: name 'args' is not defined

报错args和*kargs未定义,说明这两兄弟只能在def中用。

总结

敲黑板,重点,

1、装饰器的写法,要在函数中定义一个函数,一般写wrapper,主要是为了用args,*kargs传参不报错。
1、1 记得return wrapper,不然只定义不执行,没什么用。

相关文章

  • 2019-05-26python装饰器到底是什么?

    装饰器例子 参考语法 装饰器是什么?个人理解,装饰器,是python中一种写法的定义。他仍然符合python的基本...

  • Python进阶-装饰器

    这篇文章要解决的问题: # 装饰器是什么? # 装饰器的种类? # 为什么使用装饰器? # 怎么使用装饰器? # ...

  • Python装饰器

    Python装饰器 装饰器的本质是什么? 装饰器等价于高阶函数,形如myfunc=decorator(myfunc...

  • python装饰器在接口自动化测试中的应用

    在讲解装饰器在接口自动化测试项目的应用之前,我们先来介绍一下python装饰器到底是个什么 装饰器 说装饰器就不得...

  • python 装饰器的使用--逐步添加中

    装饰器是什么:装饰器的通用:带参数的装饰器的使用:装饰器的使用范围:入门之前,先提几个问题,然后依次回答这些问题。...

  • JS中装饰器到底是什么?

    因主要的技术栈是Angular,对于Angular采用的装饰器特别认可,是一种优雅的拦截JS的方式。 TC39的装...

  • 神奇的装饰器

    装饰器小结 画个示意图: 装饰器的基本原理可以通过以上这个例子进行验证,接下来进入正题,那么装饰器到底是个什么呢?...

  • 装饰器

    """@装饰器- 普通装饰器- 带参数的装饰器- 通用装饰器- 装饰器装饰类- 内置装饰器- 缓存装饰器- 类实现...

  • typescript 五种装饰器

    装饰器类型 装饰器的类型有:类装饰器、访问器装饰器、属性装饰器、方法装饰器、参数装饰器,但是没有函数装饰器(fun...

  • Python装饰器——初识

    上次讲了Python的闭包,今天来讲一下闭包的应用——装饰器 1. 装饰器是什么 什么叫装饰器?顾名思义,它是一个...

网友评论

      本文标题:2019-05-26python装饰器到底是什么?

      本文链接:https://www.haomeiwen.com/subject/eohftctx.html