博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python中的@
阅读量:6428 次
发布时间:2019-06-23

本文共 691 字,大约阅读时间需要 2 分钟。

一、函数修饰符

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

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

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

  示例:  

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 "*"*1510         return fn(n*(n-1)*(2*n-1)/6)11     return square12 13 14 @square_sum15 def sum_a(a):16     print "3=", a17     18 sum_a(10)
View Code

 结果

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

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

 

 

 

 

 

 

 

 

 

 

 

 

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

  source:【1】

转载地址:http://fbnga.baihongyu.com/

你可能感兴趣的文章
asp.net编译 懒人脚本
查看>>
二分答案经典入门题:)
查看>>
为什么你需要将代码迁移到ASP.NET Core 2.0?
查看>>
思杰的雄心——软件定义的工作空间
查看>>
Servlet的多线程和线程安全
查看>>
存储树形的数据表转为Json
查看>>
CAN 总线通信控制芯片SJA1000 的读写
查看>>
oauth授权协议的原理
查看>>
OutputCache说明
查看>>
sdl2.0示例
查看>>
数学 --- 高斯消元 POJ 1830
查看>>
Ejabberd源码解析前奏--集群
查看>>
[ZHUAN]Flask学习记录之Flask-SQLAlchemy
查看>>
【转】Install SmartGit via PPA in Ubuntu 13.10/13.04/12.04/Linux Mint
查看>>
PNG怎么转换成32位的BMP保持透明
查看>>
经验分享:CSS浮动(float,clear)通俗讲解
查看>>
WTL中最简单的实现窗口拖动的方法(转)
查看>>
数据结构—队列
查看>>
C. Adidas vs Adivon
查看>>
BZOJ4241 : 历史研究
查看>>