タグ "closure" を含むブログ一覧 投稿一覧へ戻る

【 Effective Python, 2nd Edition 】インスタンスを関数として利用可能にする __call__ 特殊関数を含んだクラスを定義してフック ( hook ) として利用することで、既存の API の機能拡張を計ろう!

Tags: closure , defaultdict , __call__ , python , effective

Published 2020年7月7日20:57 by T.Tsuyoshi

数多くの Python 組み込み API では、引数として関数を受け取ることでその「振る舞い」をカスタマイズできるようになっています。 このようなことをフック ( hook ) と呼んでいますが、定義には若干曖昧なところが見受けられ、「API の振る舞いを渡す関数によってカスタマイズする」行為そのものを指す場合や、API の振る舞いをカスタマイズするために渡す「関数自身」を指す場合等が…

【 Effective Python, 2nd Edition 】クロージャー関数 ( closure function ) の変数スコープについて - 参照と代入における違いを理解してますか?

Tags: nonlocal , closure , scope , python , effective

Published 2020年6月21日8:21 by T.Tsuyoshi

数値で構成されるリストの並べ替えをする際に、あるグループに属する数値を前方に配置したいとします。 このようなロジックは、ユーザーにメッセージ等を表示する際、重要度の高いものから表示したい場合などに有効です。 実装する一般的な方法は、リストの sort() の key パラメータに、並べ替えに利用する値を提供するためのヘルパー関数を渡すことです。 def sort_p…