関数への入力が次のとおりかどうかを確認するためにデコレータを使用できるかどうか疑問に思っていました。
- 辞書。辞書でない場合は、メソッドを実行します
- 辞書の場合は指定されたキーを取り出してメソッドに渡す
例:
@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