我想知道是否可以使用装饰器来查看函数的输入是否为:
- 字典,如果不是字典,则运行该方法
- 如果是字典,则从中提取指定的键,并将其传递给方法
例子:
@get_values(['username', 'password'])
def log_me_in(username, password)
# login logic
if username == password:
return True
return False
调用方法:
log_me_in(username = 10, password = 10)
>>>> True
log_me_in(10, 10)
>>>> True
log_me_in({'username': 10, 'password': 10})
>>>> True
log_me_in({'username': 10, 'password': 10, 'something': 10})
>>>> True
log_me_in({'username': 10, 'something': 10})
>>>> EXCEPTION
log_me_in({})
>>>> EXCEPTION
log_me_in([])
>>>> EXCEPTION