タグ

__new__に関するishideoのブックマーク (2)

  • Python の __new__ ってなに? | 民主主義に乾杯

    # 2. __new__ は、いつ使うの? 答え: immutable を初期化したい(稿で解説) singleton を実装したい(Python でシングルトンを書く) (opens new window) 引数をもとにクラスを切り替えたいとき(メタクラスで紹介) この記事では immutable なオブジェクトを初期化する際に __new__ の使い方について説明させていただきます。 immutable については以下の記事で説明させていただきました。 Python の immutable と mutable の違い 実際に immutable なクラスを定義したいときは namedtuple (opens new window) 関数を使います。 このページでは tuple を継承した immutable なクラスで __new__ の簡単な使い方をご紹介します。 namedtup

  • __new__と__init__とメタクラスと - Qiita

    # 1. __new__でインスタンスをreturnしない場合 # ref. https://docs.python.org/2/reference/datamodel.html#object.__new__ class A(object): def __new__(cls): print('new') # return super().__new__(cls) def __init__(self): print('init') super().__init__() >>> A() new # __new__は呼ばれ、__init__は呼ばれない # 2. サブクラスで親クラスの__init__を明示的に呼び出さない場合 class B(A): pass ... >>> B() new # クラスAの__new__は呼ばれ、__init__は呼ばれない 特に2のケースは、クラスが継承して使

    __new__と__init__とメタクラスと - Qiita
  • 1