引数付きのdecorator def decorator(func): def wrapper(name): return func(name + 'さん') return wrapper @decoratordef hello(name): print(f'hello {name}') def witharg(suffix): def decorator(func): def wrapper(name): return func(name + suffix) return wrapper return decorator @witharg('殿')def hello(name): print(f'hello {name}') みたいなことができる。 # デフォルト引数で兼用したいのだが・・・def witharg(suffix = None): def decorator(func): def wrapper(name): return func(name + suffix) return wrapper return decorator @witharg() # カッコが要るのに注意def hello(name): print(f'hello {name}') デフォルト引数で省略すると嵌るので注意。 外側を func 引数で呼び出してしまう。 decorator に引数が定義されていると挙動が変わるのではなく、 使う時 @ にカッコがあるときに挙動が変わる。 👈新 QuickFixとLocationList周り May 6, 2019 vim 旧👉 pythonのmoduleとpackage周り Apr 30, 2019 python