Recommended
PDF
PPTX
JJUG CCC 2017 Fall オレオレJVM言語を作ってみる
PDF
PDF
PDF
PostgreSQL - C言語によるユーザ定義関数の作り方
PDF
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
PDF
PDF
Python で munin plugin を書いてみる
PDF
PDF
PDF
effective modern c++ chapeter36
PDF
ジェネリック関数の呼び出され方 #cocoa_kansai
PDF
PDF
PDF
PDF
Deep Dive async/await in Unity with UniTask(UniRx.Async)
PPTX
PDF
Async design with Unity3D
PDF
PDF
TensorFlow XLA 「XLAとは、から、最近の利用事例について」
PDF
Swift 2.0 の Error Handling #yhios
PDF
Lisp Tutorial for Pythonista : Day 3
PDF
PPTX
RuntimeUnitTestToolkit for Unity
PDF
PDF
Effective Modern C++ 読書会 Item 35
PPTX
PDF
PDF
PDF
More Related Content
PDF
PPTX
JJUG CCC 2017 Fall オレオレJVM言語を作ってみる
PDF
PDF
PDF
PostgreSQL - C言語によるユーザ定義関数の作り方
PDF
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
PDF
PDF
Python で munin plugin を書いてみる
What's hot
PDF
PDF
PDF
effective modern c++ chapeter36
PDF
ジェネリック関数の呼び出され方 #cocoa_kansai
PDF
PDF
PDF
PDF
Deep Dive async/await in Unity with UniTask(UniRx.Async)
PPTX
PDF
Async design with Unity3D
PDF
PDF
TensorFlow XLA 「XLAとは、から、最近の利用事例について」
PDF
Swift 2.0 の Error Handling #yhios
PDF
Lisp Tutorial for Pythonista : Day 3
PDF
PPTX
RuntimeUnitTestToolkit for Unity
PDF
PDF
Effective Modern C++ 読書会 Item 35
PPTX
PDF
Viewers also liked
PDF
PDF
PDF
PDF
PDF
Ikazuchi introduction for Europython 2011 LT
PDF
Tweaking Google TV emulator
PDF
Similar to エキ Py 読書会02 2章後半
PDF
LLdeade Python Language Update
PDF
ODP
PPT
PDF
PPTX
KEY
Hello World Python featuring GAE
PDF
PDF
DATUM STUDIO PyCon2016 Turorial
PPT
Python languageupdate (2004)
PDF
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12
PDF
Python & PyConJP 2014 Report
PDF
PDF
PDF
「Python言語」はじめの一歩 / First step of Python
PDF
PPTX
PDF
PDF
次世代言語 Python による PyPy を使った次世代の処理系開発
KEY
More from Tetsuya Morimoto
PDF
PDF
PDF
PDF
PyLadies Tokyo 二周年記念パーティ LT
PDF
PyCon JP 2016 ビギナーセッション
PDF
Python と型ヒント (Type Hints)
PDF
PDF
PDF
エキ Py 読書会02 2章後半 1. 2. 2.1 リスト内包表記 P. 62 ~
2.2 イテレータとジェネレータ P. 64 ~
ジェネレータ、コルーチン、ジェネレータ式
itertools モジュール
2.3 デコレータ P. 76 ~
引数チェック、キャッシュ、プロキシ、その他
2.4 with と contextlib P. 88 ~
contextlib モジュール
2.5 まとめ P. 93 ~
3. イテレータ
繰り返し要素を返すオブジェクトのこと
for j in [i for i in range(3)]:
print j イテレータ
ジェネレータ
ジェネレータ
yield 文を使用して関数を一時停止させ、途中の
結果を生成する
def generator(): for i in generator():
for i in [0, 1, 2]: print i
yield i
4. イテレータを返す関数を提供するモジュール
islice: ウィンドウイテレータ
入力イテレータをスライシングしてイテレータを返す
tee: 前後方イテレータ
オリジナルの入力イテレータから複数の独立したイテレータ
を返す(tee コマンド)
groupby: ユニークイテレータ
グループ化した値セットのイテレータを返す(uniq コマンド)
その他の関数
07
ピュア Python で動作の説明がある
5. P.75 他の関数
イテレータを組み合わせる
itertools の関数を入力イテレータに使用するこ
とで様々な用途に応用ができそう
08
imap/izip や starmap で連携
パフォーマンス
メモリ効率が良いので速くなる
6. P.76 - 79
デコレータ(decorator)
関数やメソッドのラッピング処理の見た目を分かり
易くする
デコレータ構文を使用しなくても同処理が書ける
デコレータの良いプラクティス
P.79 Note
汎用的なラッパーとなる処理
ラップした関数の引数、返り値を見るようにして、できるだけそ
の関数の内部を解析しないようにすべき
関数の pre/post 処理を実装する
09
1つのモジュール内にまとめる
7. XML-RPC プロトコル P.80 - 81
引数を取るデコレータ
デコレータ内の処理結果を使いたいときはグロー
バル変数を使うしかない?
関数内部を解析しないようにすべき?
def xmlrpc(in_=(), out(type(None),)):
def _xmlrpm(function):
def __xmlrpc(*args):
return function(*args)
retrun __xmlrpc
return _xmlrpc
8. P.82 - 84
キャッシュデコレータ
関数型プログラミングの特徴
出力が内部状態の影響を受けない
引数から必ず一意な結果が算出される
関数を呼び出さず、キャッシュの値を返す
やっぱりキャッシュはグローバル変数
メモ化(memoizing)
たらいを回すならHaskell
Python でもチャンレンジしてみよう
9. P.85
プロキシデコレータ
Web フレームワークのセキュリティを確保する仕
組みに利用される?
Django での使用例
login_required デコレータ
permission_required デコレータ
10. P.86
コンテキストデコレータ
正しい実行コンテキストでの実行を保証
例) スレッドのロック
デコレータでなくても with 文でできるよ
Python 2.6 以降
11. Python デコレータライブラリ P.87
インスタンスへメソッドを追加する
こんな状況あるかな?
引数の情報収集
Oreilly2sphinx
ハンドラ登録
プログラム終了時に実行する
引数のカッコが省略可能なデコレータの実装方法
12. P.88-90
with 文
try...finally の置き換え
ファイルを閉じる
ロックを解除する
一時的にコードにパッチをあてる
特定環境で保護されたコードを実行する
2つのメソッドを実装したプロトコル
__enter__: with ブロックに入るときに何かする、大抵は self を返す
__exit__: with ブロックを出るときに何かする、クリーンナップ
デコレータのコンテキストプロバイダと 10
同様に pre/post 処理を行う
13. with 文のヘルパー関数を提供 P.91-92
contextmanager が役に立つ
yield 文で分割
yield より前: __enter__ の処理
yiled が生成した値は as で指定した変数へセット
yield より後: __exit__ の処理
closing: close メソッドの呼び出しを保証する
11
ストリームを扱うクラスに役立つ、例) urllib.urlopen
nested: コンテキストを結合してネストされた with を扱う
14.