【 Effective Python, 2nd Edition 】デスクリプタ ( descriptor ) を利用して @property で行っていた属性値への操作を再利用できるようにしよう!
Published 2020/7/16 by mootaro23
@property は属性値のちょっとした操作、変更に非常に便利ですが、最大の問題点は再利用性です。
当然ながら @property のメソッドの対象はクラス内のただ1つの属性であって、複数の属性に同じ操作を適用することはできませんし、ましてや、異なるクラスで再利用することなどできません。
例えば、生徒が宿題の自主採点をして提出するためのクラスを作成し、入力された点数が 0 点から 100 点の間であるかを検証する…
【 Effective Python, 2nd Edition 】クラス作成時の setter メソッド、getter メソッドの利用は最小限に。可能な限り public 属性によるインターフェース構築を目指しましょう
Published 2020/7/15 by mootaro23
他の言語の使い手が Python を使うときに良くありがちなのが、クラスを定義する際に明示的に setter メソッドと getter メソッドを実装することです。
class OldHo…
【 Effective Python, 2nd Edition 】独自のコンテナタイプ ( custom container types ) を定義するなら collections.abc クラスから派生させると手間無しです!
Published 2020/7/14 by mootaro23
シーケンス ( sequences ) データを扱い、もしちょっとだけ独自の機能を追加したいのなら、組み込みのリストタイプ ( list ) から派生させたクラスを作っちゃえば簡単です。
…
【 Effective Python, 2nd Edition 】Python においてクラス属性に厳密な private が無いのは何故? できる限り利用すべきではない理由とは? それでも private の使用が有効な状況とは?
Published 2020/7/13 by mootaro23
Python におけるクラス属性へのアクセスは基本 public ですが、属性名の前に __ ( _ を2つ) 付けることで private にすることができます。
class MyObj…
【 Python + PostgreSQL 】with ステートメントとコネクションプール ( connection pool ) を活用して、効率的で安全なデータベースコネクション、カーソル ( cursor ) の供給、利用ができるようにしよう!(その2) 🔒
Published 2020/7/10 by mootaro23
前回(その1)の記事は こちら からどうぞ。
今回は前回の最後に提起した課題から取り組んでいきましょう。
class ConnectionPool:
def __ini…
【 Python + PostgreSQL 】with ステートメントとコネクションプール ( connection pool ) を活用して、効率的で安全なデータベースコネクション、カーソル ( cursor ) の供給、利用ができるようにしよう!(その1)
Published 2020/7/9 by mootaro23
今回はちょっと趣向を変えてデータベースを扱います。
まずは前提です。
システムにはすでに PostgreSQL と psycopg2 がインストールされており Python プロ…
【 Effective Python, 2nd Edition 】@classmethod ポリモーフィズム ( polymorphism ) を利用して、複数の派生クラスをよりジェネリック ( generic ) に活用しよう!
Published 2020/7/8 by mootaro23
Python では、インスタンスに限らずクラスでもポリモーフィズム ( polymorphism ) を活用できます。
これはどういうことなんでしょうか? そして、どんなときに活用できるんでしょう…
直近 48 時間のアクセスランキング (2024/12/05 11:30 現在)
準備中