タグ

ブックマーク / blog.livedoor.jp/kikwai (1)

  • 時間城年代記:メタクラスで遊ぶ(3)

    ■__new__の啼く夜は恐ろしい…… つくづく私は、__new__組み込みメソッドとは相性が悪い。 先日、メタクラスの記事の中で、とんでもない誤解コードがあり、コメントで指摘されたので、修正した。 しかしこの際ついでに、__new__メソッドについていろいろ確認しておくことにする。 まず__new__メソッドは『クラスメソッド』扱いである(@classmethonと書くアレ) 即ち、__new__メソッドの第一引数は、『インスタンス』ではなく『クラス』である。 よって、__new__に何も記述しなければ、デフォルトでは以下のような動作が行われている。 def __new__(cls, *args): ins = object.__new__(cls) # インスタンス生成 cls.__init__(ins, *args) # インスタンス初期化 return ins # 戻り値としてイン

  • 1