用类装饰器装饰类方法 [英] Decorate class-method with class-decorator
本文介绍了用类装饰器装饰类方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试使用类装饰器来装饰类方法.例如
I'm trying to decorate class method using class-decorator. For example
class MyDecorator(object):
def __init__(self,param1):
self.param1 = param1
# do some action with param1
def __call__(self,func):
def wrapped(*args,**kwargs):
print "in wrapper:"
func(*args,**kwargs)
return wrapped
还有我的一些课:
class A:
@MyDecorator("Blablabla")
def func1(arg1,arg2,arg3):
print (arg1,arg2,arg3)
但是当我做下一个动作时:
but when I do the next action:
a = A()
a.func(1,2,3)
我收到以下错误:
TypeError: func1() takes exactly 3 arguments (4 given)
推荐答案
class A:
@MyDecorator("Blablabla")
def func1(self, arg1, arg2, arg3):
print (arg1,arg2,arg3)
您需要将 self 参数添加到您的函数中.
You need to add the self argument to your function.
这篇关于用类装饰器装饰类方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文