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
これは、「引数なし」のケースとして誤って検出されます。
この状況も検出する方法はありますか?
[編集: 不足していた「self」パラメータを追加]