这里有很多关于如何检测 python 装饰器是否带参数或不带参数的答案。它们通常看起来像这样:
class MyDecorator(object):
def __init__(self, *args):
if len(args) == 1 and callable(args[0]):
# no arguments
else:
# arguments
但现在我有以下用例:
@MyDecorator(lambda x:2*x)
def foo():
pass
这被错误地检测为“无论据”案例。
有没有办法检测这种情况?
[编辑:添加了缺少的“自我”参数]