zoukankan      html  css  js  c++  java
  • 【转载】 python修饰符@

    @符号在python语言中具有特殊含义,用来作为修饰符使用, @修饰符有点像函数指针,python解释器发现执行的时候如果碰到@修饰的函数,首先就解析它,找到它对应的函数进行调用,并且会把@修饰下面一行的函数作为一个函数指针传入它对应的函数。

    参考下面的代码:

     1 def spamrun(fn):
     2     def sayspam(*args):
     3         a,b =args
     4         c,d = a*5, b*5
     5         print c,d
     6         return fn(c,d)
     7     print 'note!'
     8     return sayspam
     9 @spamrun
    10 def useful(a,b):
    11     print a*2, b*2
    12 if __name__== "__main__":
    13     #useful(2,3)
    14     print 'nothing'

    运行结果:

    1 note!
    2 nothing

    输出了“note!",spamrun方法已经运行过了。说明:

    @spamrun是一个statement,会将useful当作参数传入来执行spamrun方法。

    如果将上段代码中的useful(2,3)去年注释,输出为:

    1 note!
    2 10 15
    3 20 30
    4 nothing

    这个输出结果说明:

    spamrun方法运行完毕后,usefull方法已经指向sayspam方法了,而fn此时指向的是原来usefull的方法实体。

    转载来自:http://blog.csdn.net/thumb3344/article/details/5645124

  • 相关阅读:
    位运算操作
    C 动态分配内存
    数据查询语言 DQL
    数据操纵语言 ,DML, 增删改
    Convert Sorted List to Binary Search Tree
    Longest Consecutive Sequence
    Binary Tree Postorder Traversal
    Triangle
    4Sum
    3Sum Closest
  • 原文地址:https://www.cnblogs.com/dcb3688/p/4255310.html
Copyright © 2011-2022 走看看