プログラムとか 思ったこととか 徒然ブログ 投稿一覧へ戻る

タグ "__set_name__" が付いている投稿一覧

【 Effective Python, 2nd Edition 】__set_name__ デスクリプタ専用特殊関数 ( special method for descriptor ) を利用してデスクリプタインスタンスを割り当てたクラス変数名を取得し、コードの冗長性を排除しよう!

Tags: Python , Effective , descriptor , metaclass , __set_name__

Published 2020年7月28日21:30 by T.Tsuyoshi

メタクラス ( metaclass ) を利用することで、クラスの「型」が完全に作られる前にクラス属性を操作することができます。 さらに、デスクリプタ ( descriptor ) を利用すると、デスクリプタインスタンスを含むクラスとその属性のよりきめ細かい操作が可能になるんです。 例えば、顧客データベースの各フィールドに相当するクラスを作成するとします。 今回は、データベースのフィールド名とクラスの属性名を結びつけるためにデスクリプタを定義します。 class Field: def __init__(self, name: str): self.name = …