デコレータからローカル変数を取得しようとしています。例:
def needs_privilege(privilege, project=None):
"""Check whether the logged-in user is authorised based on the
given privilege
@type privilege: Privilege object, id, or str
@param privilege: The requested privilege"""
def validate(func, self, *args, **kwargs):
"""Validator of needs_privillige"""
try: check(self.user, privilege, project)
except AccessDenied:
return abort(status_code=401)
else:
return func(self, *args, **kwargs)
return decorator(validate)
次のように関数を装飾した後:
@needs_privilege("some_privilege")
def some_function():
pass
some_functionから'privilige'変数(validate()が使用)を取得したいと思います。1時間以上検索した後、私はかなり迷っています。これは可能ですか?
編集:私の問題をもう少し詳しく説明しましょう: some_functionを実行せずに文字列 "some_prvilege"を取得できますか?何かのようなもの:
a = getattr(module, 'somefunction')
print a.decorator_arguments
?これまで私を助けてくれてありがとう!