【发布时间】:2013-11-03 09:53:43
【问题描述】:
def require(role):
def wrapper(fn):
def new_fn(*args, **kwargs):
if not role in kwargs.get('roles', []):
print("%s not in %s" % (role, kwargs.get('roles', [])))
raise Exception("Unauthorized")
return fn(*args, **kwargs)
return new_fn
return wrapper
@require('admin')
def get_users(**kwargs):
return ('Alice', 'Bob')
以上代码将装饰器require 参数化为admin。看来函数get_users 传递给wrapper 的参数fn。但是,get_users 是如何传递给参数fn 的呢?
【问题讨论】:
-
你的意思是你想让
get_users()也访问role值?