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

【Python 雑談・雑学】メタクラス ( metaclass ) とデコレータ ( decorator ) で遊んでみる、考えてみる!

Tags: miscellaneous , decorator , __new__ , metaclass , python

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

クラスはオブジェクトの設計図であり、メタクラス ( metaclass ) はクラスの設計図である、といわれたところで全然分かりません。 ただ、昨今のプログラミング環境においてブラックボックス的に機能を提供してくれる先進的なフレームワークやライブラリ、例えば Django における Forms など、が、このメタクラスによって実現されていることは確かなんです。 どんなものなの…

【 Effective Python, 2nd Edition 】クラス作成時の setter メソッド、getter メソッドの利用は最小限に。可能な限り public 属性によるインターフェース構築を目指しましょう

Tags: decorator , setter , getter , python , effective

Published 2020年7月15日21:14 by T.Tsuyoshi

他の言語の使い手が Python を使うときに良くありがちなのが、クラスを定義する際に明示的に setter メソッドと getter メソッドを実装することです。 class OldHowManyCanIBuy: def __init__(self, price): self._price = price def get_price(self…

【 Effective Python, 2nd Edition 】再帰関数の実行順序をトレースするデコレータを実装しよう - デバック用途にも重宝します!

Tags: decorator , python , effective

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

今回もデコレータに関連する話題ですが、デコレータの詳細については 前回 取り上げましたので、 今回は復習も兼ねながらちょっと面白いプログラムをご紹介します。 このプログラムは、再帰関数 (recursive function) のネスト呼び出し時における実行過程を、各時点の引数と返却値と共に表示するものです。 fibonacci(4) を実行した際の表示は次のようになります…

【Python 雑談・雑学】 デコレータ (decorators) を理解しよう - デコレータ、オリジナル関数からの引数の渡し方、受け取り方

Tags: miscellaneous , decorator , python

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

デコレーター (decorators) は関数を引数として受け取り、他の関数に置き換えた上で、最終的にオリジナルの関数を実行します。 他の関数に置き換えることで、オリジナルの関数の機能を補完、変更することが可能になります。 簡単な実装方法からよりジェネリックで現実的な実装方法までを段階を追って見ていきましょう。 ユーザーが admin パーミッションを持っていれば admi…