파이썬 인스턴스를 만드는 구조는 다음과 같다.
하지만 __new__()를 쓰는 경우는 거의 없는 것 같다. 인터넷에서 찾을 수 있는 대부분의 파이썬 강좌에서는 __new__()에 대해 설명하지 않는다. 굳이 쓰자면 싱글톤 패턴 구현할 때?
다음은 __new__()를 이용한 싱글톤 패턴 예제이다.
>>> class A(object): instance = None def __new__(cls): if cls.instance is None: cls.instance = object.__new__(cls) print("__new__") return cls.instance def __init__(self): print("__init__") >>> a = A() __new__ __init__ >>> b = A() __init__ >>> a <__main__.A object at 0x02EC7C50> >>> b <__main__.A object at 0x02EC7C50> >>>