Pythonでメソッドの実行をトレースしたい場合は、次のデコレータを実装します。
def trace(f):
indent = ' '
def _f(*args):
signature = '%s(%s)' % (f.__name__, ', '.join(map(repr, args)))
print '%s--> %s' % (trace.level*indent, signature)
trace.level += 1
try:
result = f(*args)
print '%s<-- %s == %s' % ((trace.level-1)*indent, signature, result)
finally:
trace.level -= 1
return result
trace.level = 0
return _f
def disabled(f) : return f
# uncomment the following line to disable tracing
# trace = disabled
次に、トレースしたいメソッドを装飾できます。
@trace
def my_method(arg1, arg2):
...
もう1つの可能性は、トレースモジュールを使用することです。
Scalaでメソッドの実行を追跡する慣用的な方法は何ですか?