这是一个Python问题。
我在util文件中编写了一个装饰器,然后我定义了一个带有一些成员函数的类,我想用装饰器装饰的函数之一,而装饰器有一个控制代码运行的参数。当我装饰成员函数时,我只想给出一个类成员值或一个类实例值,如何实现它?
答案 0 :(得分:1)
由于您的问题中没有示例代码,因此不确定您要问的是什么,但这是猜测:
import functools
#from utilities import my_decorator # in-lined below for simplicity
def my_decorator(control):
def wrapper(function):
" Do something with function or before and after it returns. """
@functools.wraps(function)
def wrapped(*args, **kwargs):
print('doing something with {!r} control before calling {}()'.format(
control, function.__name__))
return function(*args, **kwargs)
return wrapped
return wrapper
class Test(object):
def foo(self):
print('in method foo')
@my_decorator('baz')
def bar(self):
print('in method bar')
test = Test()
test.foo()
test.bar()
输出:
in method foo
doing something with 'baz' control before calling bar()
in method bar