我有一个名为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()
如何删除此错误?
您的代码的问题是,您使用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")