我有一个带有decorator_func
函数和另一个名为name_me
函数的类。如何用类中的另一个函数来装饰name_me
函数?
这是我到目前为止尝试过的:
class Test :
def decorator_func(fun):
def disp_fun(name):
return ("hello there ,") + fun(name)
return disp_fun
@decorator_func
def name_me(name):
return name
print name_me("abhi")
obj = Test()
obj.decorator_func()
如何清除此错误?
答案 0 :(得分:2)
代码存在的问题是,您使用name_me
类中的方法来装饰Test
函数。
您可以将decorator_func
类中的Test
移出,然后您的代码应如下所示:
def decorator_func(fun):
def disp_fun(name):
return ("hello there, ") + fun(name)
return disp_fun
@decorator_func
def name_me(name):
return name
print name_me("abhi")
我们将创建Test
类的实例,并使用实例的方法装饰name_me
函数,如下所示:
class Test :
def decorator_func(self, fun):
def disp_fun(name):
return ("hello there, ") + fun(name)
return disp_fun
# Create a instance of the Test class
obj = Test()
@obj.decorator_func
def name_me(name):
return name
print name_me("abhi")