デコレータをインポートしないで
tracer.cmd とかで実行できるようにしたくなったのでお試し。
ソースコード
class Main():
def add_resp(self,cmd):
def _add_resp(func):
def wrapper(*args, **kwargs):
print("Decorated!")
func.decorated = "Cmd"
return func(*args, **kwargs)
return wrapper
return _add_resp
tracer = Main()
@tracer.add_resp("test")
def help():
print("testdesu")
return "OK"
print(help())
実行結果
Decorated!
testdesu
OK
使い方
tracer の中に 関数を置いちゃっても使えるようになる
それだけ。
補足
func(*args, **kwargs) で実行しないと
感想
案外難しくなかった。