美文网首页
关于装饰器括号问题

关于装饰器括号问题

作者: running_sheep | 来源:发表于2020-04-16 17:45 被阅读0次

今天正好看到一个三层装饰器,显示方式是:@decorate(),但我记得两层的时候明明是不加括号的@decorate。有点不明白,就写了一个函数计时器的装饰器,测试一下。

两层的时候,加了()是会报错的,因为没给参数,如下:

那什么时候既可以加()又可以不加()呢,需要加一个判断,如下:

这说明,如果是@time_log(),那么传入的func=None,return wrapper,func就是@time_log()下面的myfunc;如果是@time_log,那么传入的func就是下面的myfunc,那么检查myfunc是否可调用,如果可以,return wrapper(myfunc)

相关文章

  • 关于装饰器括号问题

    今天正好看到一个三层装饰器,显示方式是:@decorate(),但我记得两层的时候明明是不加括号的@decorat...

  • python 学习记录

    3.13#闭包,装饰器,函数等。 装饰器, 函数名加括号,不加括号,加括号是执行他,不加就是返回函数 git 和G...

  • Decorator装饰器定义可选参数

    一般带参数装饰器。使用装饰器时需要加上括号@logged()。@logged将会提示参数错误。 利用functoo...

  • 学了这么久什么是python装饰器都不知道,这篇要看看了!

    最近有同学在问关于python中装饰器的问题,说不太理解装饰器的装饰过程。 那么在下面通过一个小白的故事,来给大家...

  • Python进阶-装饰器

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

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

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

  • Python的自定义超时机制——装饰器的妙用

    装饰器 关于装饰器的入门,可以参考这篇文章:12步轻松搞定python装饰器简单来说,装饰器其实就是一个闭包(闭包...

  • 装饰器

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

  • typescript 五种装饰器

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

  • 装饰器

    函数装饰器:通常用于插入日志、性能测试、事务处理、缓存、权限校验等场景。装饰器是解决这类问题的绝佳设计 类装饰器:...

网友评论

      本文标题:关于装饰器括号问题

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