python @装饰器 简单理解

个人学python 好久了,但是一直是这里挑点哪里挑点那样学,有点力不从心。最近又想看看装饰器怎么用,就又研究了一下下。

简单点的:

#!/usr/bin/python

def say(key):                              # 创建一个小函数

print ‘your first love!‘

return key

@say

def hold():

print ‘this is sercod world!‘

hold()

简单讲一下就是   @say

def hold()   就是把  hold 函数用say包起来,执行顺序是say("#参数就是#hold函数整体#"),简单的说就是 hold函数外层又套了一个say函数。 但是最终执行的是 hold ,所以外套函数say 必须结果指向到hold ,所以返回值 return key----这里的key 就是hold 本身了。

说起来有点拗口,但是理解了就好办了。如果你不理解怎么也没办法。

时间: 2024-10-23 10:33:20

python @装饰器 简单理解的相关文章

转发对python装饰器的理解

[Python] 对 Python 装饰器的理解的一些心得分享出来给大家参考 原文  http://blog.csdn.net/sxw3718401/article/details/39519587 主题 Python 最近写一个py脚本来整理电脑中的文档,其中需要检校输入的字符,为了不使代码冗长,想到使用装饰器. 上网搜索有关python的装饰器学习文档,主要看的是 AstralWind的一篇博文,以及Limodou的一篇文章.作为初学者,这两篇文章对新手有很大的帮助,但仍然有些不易理解的地方

[Python] 对 Python 装饰器的理解的一些心得分享出来给大家参考

最近写一个py脚本来整理电脑中的文档,其中需要检校输入的字符,为了不使代码冗长,想到使用装饰器. 上网搜索有关python的装饰器学习文档,主要看的是AstralWind的一篇博文,以及Limodou的一篇文章.作为初学者,这两篇文章对新手有很大的帮助,但仍然有些不易理解的地方.因此在此以一个初学者的认知记录一下python的装饰器的学习心得. 1. 什么是装饰器? 顾名思义,装饰器就是在方法上方标一个带有@符号的方法名,以此来对被装饰的方法进行点缀改造. 当你明白什么是装饰器之后,自然会觉得这

Python 装饰器自理解备忘

简单的装饰器代码(给装饰的函数有参数和返回值): #!_*_ coding=utf-8 _*_ #!/usr/bin/env python def outer(fun):     def wrapper(var):         print "装饰前"         resulf = fun(var)         print "装饰后"         return resulf     return wrapper @outer def Func1(var

皇帝的新衣(python装饰器的理解和使用)

今天来说说装饰器. 在python语言中,装饰器的主要作用是减少重复输入的精髓.有了装饰器,可以非常直观而优雅的使用重复代码,就像一件衣服,可以给皇帝穿,也可以给任何人穿,只要你觉得需要这件“衣服” 语法: @装饰函数名    如@yifu  就是一个装饰器,yifu就是一个装饰函数 好吧,我们先来做一件衣服(装饰函数): def yifu(func):     #yifu是装饰函数名,func是皇帝(被装饰的函数),合起来就叫:皇帝的新衣 def gongneng(): print(“我是一个

Python 装饰器简单示例

简单装饰器示例: def servlet(func): print("into servlet")#1 print(servlet)#2 def foo(): print("into foo")#7 print(func)#8,真正的bar函数 func()#9 print("out foo")#13 print(foo)#3 print("out servlet")#4 return foo @servlet def bar

Python装饰器简单实例

#!/usr/bin/env python __author__ = '氨蛋三键' class Tracer: def __init__(self, fun): self.calls = 0 self.fun = fun def __call__(self, *args, **kwargs): self.calls += 1 print("Tracer 第 %s 次调用的函数是 %s " % (self.calls, self.fun.__name__)) self.fun(*args

对Python装饰器的个人理解方法

0.说明 在自己好好总结并对Python装饰器的执行过程进行分解之前,对于装饰器虽然理解它的基本工作方式,但对于存在复杂参数的装饰器(装饰器和函数本身都有参数),总是会感到很模糊,即使这会弄懂了,下一次也很快忘记,其实本质上还是没有多花时间去搞懂其中的细节问题. 虽然网络上已经有很多这样的文章,但显然都是别人的思想,因此自己总是记不牢,所以花点时间自己好好整理一下. 最近在对<Python核心编程>做总结,收获了不少,下面分享一下我自己对于Python装饰器的理解,后面还提供了一个较为复杂的P

python之我对装饰器的理解

从一开始学习python的时候,就一直不是很理解装饰器是个什么东东,再看了很多篇博文和自己动手敲了好多代码后,算是略有了解. 我理解的装饰器是: 在不改变原有函数调用的情况下,对其进行包装,使其变成另外一种函数来使用,一般的用途是 插入日志.性能测试.事务处理等. def host_restrict(tags=[], names=[]):     def decorator(f):         @functools.wraps(f)         def decorated(*args, 

【转】九步学习python装饰器

本篇日志来自:http://www.cnblogs.com/rhcad/archive/2011/12/21/2295507.html 纯转,只字未改.只是为了学习一下装饰器.其实现在也是没有太看明白,对于装饰器我就是用的时候找例子,能蒙对,但是用过之后一段时间就忘了.还是用的少.有空应该好好看一看的,包括闭包.对于各种现代编程语言来说闭包都是很重要的.在这里先谢过原作者,如有侵权请告知. =-=-=-=-=-=-=-=-=-=-一条不怎么华丽的分隔线-=-=-=-=-=-=-=-=-=-= 这