zoukankan      html  css  js  c++  java
  • Python 中的@修饰符作用

    在Python 2.4以上的的函数中偶尔会看到函数定义的上一行有@functionName的修饰,这一下这个语法细节,其实这有点像C语言带参数的宏操作,解释器读到这样的修饰之后,会先解析@后的内容,直接就把@下一行的函数或者类作为@后边的函数的参数,然后将返回值赋值给下一行修饰的函数对象。

    def funA(a):
        print 'funA'

    def funB(b):
        print 'funB'

    @funA
    @funB
    def funC():
        print 'funC'

    result:

    >>> ================================ RESTART ================================
    >>> 
    funB
    funA

    可以这样思考,return funA(funB(funC))

    看到这里就明白了吧,从第一个函数修饰符开始,自下而上做参数传递,这样实际是使用了约定的函数修饰符达到函数嵌套的目的。记得没错Java中SSH也有这样的用法哦。

    转自: http://www.linuxidc.com/Linux/2014-04/99915.htm

  • 相关阅读:
    2018ddctf wp
    装饰器
    python作用域
    闭包
    迭代器
    ord() expected string of length 1, but int found
    pygm2安装问题
    elf逆向入门
    【POJ
    【POJ
  • 原文地址:https://www.cnblogs.com/pinganzi/p/6202475.html
Copyright © 2011-2022 走看看