python中的@
一、函数修饰符
'@' 用做函数的修饰符,可以在模块或者类的定义层内对函数进行修饰,
出现在函数定义的前一行,不允许和函数定义在同一行
一个修饰符就是一个函数,它将被修饰的函数作为参数,并返回修饰后的同名函数或其他可调用的东西?
示例:
def square_sum(fn):
def square(*args):
print "1---", args
n = args[0]
# return n*(n-1)*(2*n-1)/6
print "2==", n*(n-1)*(2*n-1)/6
print fn.__name__
fn(n*(n-1)*(2*n-1)/6)
print "*"*15
return fn(n*(n-1)*(2*n-1)/6)
return square @square_sum
def sum_a(a):
print "3=", a sum_a(10)
结果
1--- (10,)
2== 285
sum_a
3= 285
***************
3= 285
可以看出,他是先执行修饰器函数,然后有return fn的时候,修饰器下的函数才是生效的,否则函数sum_a 是没有结果的。
--------2016-7-19 17:21:15--
source:【1】python中的@ 符号
python中的@的更多相关文章
- [转]Python中的str与unicode处理方法
早上被python的编码搞得抓耳挠腮,在搜资料的时候感觉这篇博文很不错,所以收藏在此. python2.x中处理中文,是一件头疼的事情.网上写这方面的文章,测次不齐,而且都会有点错误,所以在这里打算自 ...
- python中的Ellipsis
...在python中居然是个常量 print(...) # Ellipsis 看别人怎么装逼 https://www.keakon.net/2014/12/05/Python%E8%A3%85%E9 ...
- python中的默认参数
https://eastlakeside.gitbooks.io/interpy-zh/content/Mutation/ 看下面的代码 def add_to(num, target=[]): tar ...
- Python中的类、对象、继承
类 Python中,类的命名使用帕斯卡命名方式,即首字母大写. Python中定义类的方式如下: class 类名([父类名[,父类名[,...]]]): pass 省略父类名表示该类直接继承自obj ...
- python中的TypeError错误解决办法
新手在学习python时候,会遇到很多的坑,下面来具体说说其中一个. 在使用python编写面向对象的程序时,新手可能遇到TypeError: this constructor takes no ar ...
- python中的迭代、生成器等等
本人对编程语言实在是一窍不通啊...今天看了廖雪峰老师的关于迭代,迭代器,生成器,递归等等,word天,这都什么跟什么啊... 1.关于迭代 如果给定一个list或tuple,我们可以通过for循环来 ...
- python2.7高级编程 笔记二(Python中的描述符)
Python中包含了许多内建的语言特性,它们使得代码简洁且易于理解.这些特性包括列表/集合/字典推导式,属性(property).以及装饰器(decorator).对于大部分特性来说,这些" ...
- python cookbook 学习系列(一) python中的装饰器
简介 装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象.它经常用于有切面需求的场景,比如:插入日志.性能测试.事务处理.缓 ...
- 用 ElementTree 在 Python 中解析 XML
用 ElementTree 在 Python 中解析 XML 原文: http://eli.thegreenplace.net/2012/03/15/processing-xml-in-python- ...
- Python中操作mysql的pymysql模块详解
Python中操作mysql的pymysql模块详解 前言 pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同.但目前pymysql支持python3.x而后者不支持 ...
随机推荐
- 利用Sonar规则结合WebStorm进行Code Inspect
1.目的 在编写代码时会受到公司Sonar规则的限制,不想在编写完成后再对代码进行Inspect,回头再来一个个修正,费时费力. 那么,下面将通过优秀的WebStorm开发工具自身的CodeInspe ...
- JS小游戏-蓝色拼图
// a[href=#viewSource]"); //查看源代码标签 viewSourceArr.attr("title", "查看源代码"); v ...
- Wordpress基础:文章和页面的区别
页面: 页面是你可以单独建立一个固定页面,可以作为留言板,或者通知的单页面,发布之后是固定的网址. 页面并不能被分类.亦不能拥有标签,但是它们可以有层级关系.您可将页面附属在另一个页面之下. 对应模板 ...
- win8.1解决鼠标右键反应慢的问题
进入Win8注册表之后,我们依次展开: 位置:HKEY_CLASSES_ROOT\Directory\background\shellex\ContextMenuHandlers 之后,除了面的“Ne ...
- windows2003安装TestDirector8.0 安装时输入用户名密码 提示错误
1.TestDirector8.0的安装过程 2.修改错误 右键“我的电脑”->“属性”->"高级"->性能对应的"设置"->" ...
- mongodb的使用
1.启动mongodb 启动mongodb在Linux中可以进入mongodb的bin目录下执行 ./mongod -dbpath=所建立的数据文件夹 -logpath=所建立的日志文件 ...
- k8s入门系列之扩展组件(二)kube-ui安装篇
kube-ui是k8s提供的web管理界面,可以展示节点的内存.CPU.磁盘.Pod.RC.SVC等信息. 1.编辑kube-dashboard-rc.yml定义文件[root@master kube ...
- UE4中使用数据表(Data Table)
本文依据官方文档数据驱动游戏性元素整理而来. 做过游戏的应该都清楚,如果游戏稍微有点规模,那么使用数据驱动来做游戏一般是必不可少的一步,一般也就是策划通过本表的方式来解决.下面我们来简单说一下UE4中 ...
- IOS开始对App Store大扫除:你的APP更新了吗?
成都亿合科技小编从北京商报了解到,对于开发APP应用的要注意啦,IOS要开始对App Store大扫除:你的APP更新了吗? 日前苹果App Store的开发者们发送邮件,表示将实施一个持续评估应用行 ...
- Netty之有效规避内存泄漏
有过痛苦的经历,特别能写出深刻的文章 —— 凯尔文. 肖 直接内存是IO框架的绝配,但直接内存的分配销毁不易,所以使用内存池能大幅提高性能,也告别了频繁的GC.但,要重新培养被Java的自动垃圾回收惯 ...