zoukankan      html  css  js  c++  java
  • python中的@

    一、函数修饰符

      '@' 用做函数的修饰符,可以在模块或者类的定义层内对函数进行修饰,

      出现在函数定义的前一行,不允许和函数定义在同一行

      一个修饰符就是一个函数,它将被修饰的函数作为参数,并返回修饰后的同名函数其他可调用的东西?

      示例:  

     1 def square_sum(fn):
     2     def square(*args):
     3         print "1---", args
     4         n = args[0]
     5         # return n*(n-1)*(2*n-1)/6
     6         print "2==", n*(n-1)*(2*n-1)/6
     7         print fn.__name__
     8         fn(n*(n-1)*(2*n-1)/6)
     9         print "*"*15
    10         return fn(n*(n-1)*(2*n-1)/6)
    11     return square
    12 
    13 
    14 @square_sum
    15 def sum_a(a):
    16     print "3=", a
    17     
    18 sum_a(10)
    View Code

     结果

    1--- (10,)
    2== 285
    sum_a
    3= 285
    ***************
    3= 285
    

      可以看出,他是先执行修饰器函数,然后有return fn的时候,修饰器下的函数才是生效的,否则函数sum_a 是没有结果的。

    --------2016-7-19 17:21:15--

      source:【1】python中的@ 符号

  • 相关阅读:
    CF
    求最长反链 || Dilworth 定理
    APIO 2020 补题记录
    CF vp 记录
    虚树
    LCT 学习
    平衡树
    poly
    关于此博客
    题解 P5021【NOIP2018】 【赛道修建】
  • 原文地址:https://www.cnblogs.com/mxh1099/p/5685619.html
Copyright © 2011-2022 走看看