【前回までの粗筋】
はてなブックマーク - おれのすたんぷ - 2014年9月29日より
僕もそう思います。
今日はSingletonパターンである。『Python文法詳解』によると、PythonではNoneType型, Bool型そしてEllipsis型がSingletonパターンで構成されているようである。
- 作者: 石本敦夫
- 出版社/メーカー: オライリージャパン
- 発売日: 2014/09/18
- メディア: 大型本
- この商品を含むブログ (1件) を見る
Singletonの役割はわかったものの、Pythonにおける__new__の取扱がよくわかっていない。ちゃんとわかっていないのに書くのは心苦しいが書く。
なお、Singletonパターン (1) - None is None is Noneを参考にした。
"""Singleton Method あるクラスに対してインスタンスが1つしか存在しないことを保証し、 それにアクセスするためのグローバルな方法を提供する。 """ class Singleton(object): """Singleton""" __instance = None def __new__(cls, *args, **keys): if cls.__instance is None: cls.__instance = object.__new__(cls) return cls.__instance def __init__(self, name): self.__name = name def get_name(self): return self.__name def main(): s1 = Singleton("egg") s2 = Singleton("spam") print(s1.get_name()) print(s2.get_name()) if s1 is s2: print('s1 is s2') else: print('s1 is NOT s2') if __name__ == '__main__': main()