Python 中的@修饰符作用
2014-04-10 18:03
183 查看
在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也有这样的用法哦。
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也有这样的用法哦。
相关文章推荐
- Python 中的@修饰符作用
- Python笔记——python from __future__ import division的作用
- 【转载】关于Python脚本开头两行的:#!/usr/bin/python和# -*- coding: utf-8 -*-的作用 – 指定文件编码类型
- Python 中 变量的 is 和 == 符号的作用
- #!/usr/bin/env python的作用
- python 字符串前加'r'的作用
- python中functools.wraps的作用
- 【Python】tile函数作用
- 【Python】#!/usr/bin/python 作用
- python脚本 #!usr/bin/python的作用
- Python进阶_关于命名空间与作用域(详解)
- Python——作用域
- 【python】闭包、@修饰符(装饰器)、
- 4000 浅析python 中__name__ = '__main__' 的作用
- 协程的作用 Python
- Python 中的作用域规则和闭包简析
- python argparse的作用
- Python模块包中__init__.py文件的作用
- Python args **kwargs作用
- 【整理】关于Python脚本开头两行的:#!/usr/bin/python和# -*- coding: utf-8 -*-的作用 – 指定文件编码类型