В зависимости от того, когда вам нужно выполнить работу с идентификатором, вам может понадобиться два уровня переноса, где вы замените print(permission_id)
на то, что вам нужно сделать перед вызовом метода:
def login_required(permission_id):
def decorator(func):
def method(self, *args, **kw):
print(permission_id)
return func(self, *args, **kw)
return method
return decorator
class foo(object):
@login_required('foo')
def bar(self):
print('bar')
foo = foo()
print('instantiated')
foo.bar()
Выходы:
instantiated
foo
bar