Python3系でGoFのデザイン・パタン:Singletonを実装する方法は幾つか挙げられるが、この言語が多重継承を可能にしているという背景知識さえあれば、以下のパタンはお勧めできないことがわかる。 問題設定:Python3の基底クラスを前提としたSingleton Pattern 基底クラスとして継承されることを想定して設計すると、疑似的なコンストラクタ(≠コンストラクタ)に相当する__new__がオーバーライドされる可能性を考慮しなければならなくなる。結果、これに対応した処理が煩雑になる恐れがある。 class Singleton_(object): ''' Singletonのオススメできないパタン。 Singletonインスタンスを実現するが、基底クラスとして記述しているために、 多重継承時に__new__がオーバーライドされる可能性などを考慮しなければならない。 ''' # イ
![Python3のSingletonはmetaclassで実装する | Accel Brain; Media](https://cdn-ak-scissors.b.st-hatena.com/image/square/49300c64a638406ffc58c61da95e8010c38b7596/height=288;version=1;width=512/https%3A%2F%2Fmedia.accel-brain.com%2Fwp-content%2Fuploads%2F2016%2F01%2F%25E3%2582%25A2%25E3%2583%258E%25E3%2583%258B%25E3%2583%259E%25E3%2582%25B9%25E3%2581%25AE%25E3%2583%2595%25E3%2583%25AA%25E3%2583%25BC%25E3%2582%25A2%25E3%2582%25A4%25E3%2582%25B3%25E3%2583%25B3.png)