没有合适的资源?快使用搜索试试~ 我知道了~
[翻译]理解python中的装饰器1
需积分: 0 0 下载量 148 浏览量
2022-08-03
23:25:23
上传
评论
收藏 599KB PDF 举报
温馨提示
试读
20页
[翻译]理解python中的装饰器[翻译]理解PYTHON中的装饰器[翻译]理解python中的装饰器python的函数是对象函数引用手工装饰器装饰器阐述最后回
资源详情
资源评论
资源推荐
2015/9/16 [翻译]理解python中的装饰器
http://www.wklken.me/posts/2013/07/19/pythontranslatedecorator.html 1/20
[翻译]理解PYTHON中的装饰器
[翻译]理解python中的装饰器
python的函数是对象
函数引用
手工装饰器
装饰器阐述
最后回答问题
向装饰器函数传递参数
装饰方法
向装饰器传递参数
练习:一个装饰装饰器的装饰器
装饰器使用最佳实践
装饰器为何那么有用
有人翻译过了,很多转载,暂时没找到原文,各个地方的排版不一样,排版(代码格式),
代码注解等都不怎么好
练练手,顺手一翻吧,权当加深理解
来源stackoverflow上的问题链接
很长哦(应该是巨长...分了三次搞完),要有耐心看完
python的函数是对象
要理解装饰器,首先,你必须明白,在python中,函数是对象.这很重要.
简单例子来理解为什么
首页 分类 归档 项目 关于
WKLKEN BUILDING
2015/9/16 [翻译]理解python中的装饰器
http://www.wklken.me/posts/2013/07/19/pythontranslatedecorator.html 2/20
defshout(word="yes"):
returnword.capitalize()+"!"
printshout()
#outputs:'Yes!'
#作为一个对象,你可以讲函数赋值给另一个对象
scream=shout
#注意到这里我们并没有使用括号:我们不是调用函数,而是将函数'shout'赋给变量'scream'
#这意味着,你可以通过'scream'调用'shout'
printscream()
#outputs:'Yes!'
#不仅如此,你可以删除老的名称'shout',但是通过'scream'依旧可以访问原有函数
delshout
try:
printshout()
exceptNameError,e:
printe
#outputs:"name'shout'isnotdefined"
printscream()
#outputs:'Yes!'
好了,记住这点,我们将会很快用到它.
Python函数另一个有趣的特性是,函数可以被定义在另一个函数里面
deftalk():
#你可以定义一个函数
defwhisper(word="yes"):
returnword.lower()+"..."
#...并且立刻调用
printwhisper()
#每次当你调用"talk",都会定义"whisper"
#并且在"talk"中被调用
talk()
#outputs:
#"yes..."
#但是在"talk"外部,函数"whisper"不存在!
try:
2015/9/16 [翻译]理解python中的装饰器
http://www.wklken.me/posts/2013/07/19/pythontranslatedecorator.html 3/20
printwhisper()
exceptNameError,e:
printe
#outputs:"name'whisper'isnotdefined"*
函数引用
好了,到这里了,接下来是有意思的部分,我们刚才看到函数是对象,然后:
1.函数可以赋值给一个变量
2.函数可以定义在另一个函数内部
即,这也意味着一个函数可以返回另一个函数:),让我们来看另一段代码
defgetTalk(type="shout"):
#定义函数
defshout(word="yes"):
returnword.capitalize()+"!"
defwhisper(word="yes"):
returnword.lower()+"...";
#返回函数
iftype=="shout":
#没有使用"()",并不是要调用函数,而是要返回函数对象
returnshout
else:
returnwhisper
#如何使用?
#将函数返回值赋值给一个变量
talk=getTalk()
#我们可以打印下这个函数对象
printtalk
#outputs:<functionshoutat0xb7ea817c>
#这个对象是函数的返回值
printtalk()
#outputs:Yes!
#不仅如此,你还可以直接使用之
剩余19页未读,继续阅读
shashashalalala
- 粉丝: 19
- 资源: 285
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0