-9
A
回答
0
装饰器接受函数定义并创建一个新函数,该函数执行此函数并转换结果。
@deco
def do():
...
等同于:
do = deco(do)
例子:
def deco(func):
def inner(letter):
return func(letter).upper() #upper
return inner # return a function object
#This
@deco
def do(number):
return chr(number) # number to letter
#end
# is equivalent to this
def do2(number):
return chr(number)
do2 = deco(do2)
#end
# 65 <=> 'a'
print(do(65))
print(do2(65))
>>> B
>>> B
要了解装饰,但要注意的是重要的,那装饰创造了一个新的功能做这是内部执行func并转换结果LT。
5
def spam(func):
def wrapped(*args, **kwargs):
print "SPAM"
return func(*args, **kwargs)
return wrapped
@spam #this is the same as doing eggs = spam(eggs)
def eggs():
print "Eggs?"
注意,您还可以使用类来写装饰
class Spam(object):
def __init__(self, func):
self.func = func
def __repr__(self):
return repr(self.func)
def __call__(self, *args, **kwargs):
print "SPAM"
return self.func(*args, **kwargs)
@Spam
def something():
pass
相关问题
- 1. Python:创建一个函数装饰器,用于记忆一个函数
- 2. 为什么python装饰器函数嵌套一个函数?
- 3. 这是一个函数装饰器?
- 4. 将一个装饰器列表应用于可调用?
- 5. 将装饰器应用于python包中的所有函数
- 6. 如何用python类的参数创建一个装饰器函数?
- 7. 如何创建一个可以包装协程或函数的Python装饰器?
- 8. 检查一个Python函数是否用特定的修饰器装饰
- 9. 如何测试Python函数装饰器?
- 10. 在一个类中调用一个Python装饰器
- 11. 将一个装饰器附加到一个类中的所有函数中
- 12. 如何将Flask-RESTPlus的装饰器用于每个函数调用?
- 13. 如何将一个类参数传递给装饰器?
- 14. 如何测试一个函数是用装饰器包装的(javascript)
- 15. Python装饰器计数函数调用
- 16. 编写一个装饰器,以便为类的所有方法应用另一个装饰器参数
- 17. python:通过将装饰器定义为类来装饰一个类
- 18. 如何将这两个类装饰器与functools.update_wrapper一起使用?
- 19. julia lang - 如何将多个函数应用于一个值
- 20. 哪些行一个函数在Python装饰
- 21. 将一个jquery函数应用于多个选择器?
- 22. 我如何在R中装饰一个函数?
- 23. 如何将一个函数的多个变量用于另一个函数?
- 24. 调用一个函数,如果它有一个定义的装饰模式
- 25. Python装饰器处理装饰函数的默认参数
- 26. 我可以在Python中将两个装饰器合并为一个装饰器吗?
- 27. 检查一个函数是否有装饰器
- 28. 如何用另一个类的方法来装饰(monkeypatch ...)一个Python类?
- 29. 如何将一个空参数传递给一个python函数?
- 30. 作为参数的多个函数的Python装饰器?
这里的教程中,我写道:https://www.codementor.io/python/tutorial/introduction-to-decorators – Sheena 2015-03-25 09:04:50