正如标题所述,我正在寻找一种修饰类的方法,这样当我调用方法时,decorator应用于该调用。这背后的主要原因是允许我捕捉函数调用及其传递的参数。我之所以不走传统的装饰方法的道路,是因为这些方法可能不会提前知道,因为这些类将通过插件进行扩展。我也对人们可能会遇到的其他实现持开放态度。在from functools import wraps
def echo(fh):
def func_wrapper(func):
@wraps(func)
def wrapper(*args, **kwargs):
ret = func(*args, **kwargs)
if ret is None:
ret = "empty"
fn_calls = []
if args:
fn_calls.append([func.__name__, args, ret])
elif kwargs:
fn_calls.append([func.__name__, kwargs, ret])
else:
raise ArgumentError
collector(fh, fn_calls)
return wrapper
return func_wrapper
所以使用上面的修饰符并将其应用于类而不是方法。在
伪代码示例:
^{pr2}$
它会返回如下信息:['美食酒吧','baz','None']
提前谢谢。。。在