開発環境
- macOS Mojave - Apple
- Emacs (Text Editor)
- Python 3.7 (プログラミング言語)
Head First Python 第2版 ―頭とからだで覚えるPythonの基本 (Paul Barry (著)、嶋田 健志 (監修)、木下 哲也 (翻訳)、オライリージャパン)の10章(関数デコレーター - 関数を包む)、自分で考えてみよう(p. 401)を取り組んでみる。
コード(Emacs)
Python 3
session = {}
def check_logged_in(func: object) -> object:
def wrapper(*args, **kwargs):
if 'logged_in' in session:
return func(*args, **kwargs)
return 'ログインしていません。'
return wrapper
if __name__ == '__main__':
def func():
print('wrapper')
wrapper = check_logged_in(func)
print(wrapper())
session['logged_in'] = True
print(wrapper())
wrapper1 = check_logged_in(id)
print(wrapper1(wrapper))
def func2(a:int, b:int, c:int):
print(a, b, c)
return a + b + c
wrapper2 = check_logged_in(func2)
print(wrapper2(1, 2, 3))
print(wrapper2(1, c=2, b=3))
入出力結果(Terminal, Jupyter(IPython))
$ python3 checker.py ログインしていません。 wrapper None 4459431184 1 2 3 6 1 3 2 6 $
0 コメント:
コメントを投稿