본문 바로가기
Python/Python FAQ

Python 싱글톤을 정의하는 간단하고 우아한 방법이 있을까요? [중복됨], Is there a simple, elegant way to define singletons? [duplicate]

by 베타코드 2023. 10. 12.
반응형

질문


파이썬에서 싱글톤을 정의하는 다양한 방법이 있는 것 같습니다. Stack Overflow에서는 합의된 의견이 있을까요?


답변


I don't really see the need, as a module with functions (and not a class) would serve well as a singleton. All its variables would be bound to the module, which could not be instantiated repeatedly anyway.

If you do wish to use a class, there is no way of creating private classes or private constructors in Python, so you can't protect against multiple instantiations, other than just via convention in use of your API. I would still just put methods in a module, and consider the module as the singleton.

나는 모듈이 함수로 구성되어 있고 (클래스가 아닌) 싱글톤으로서 잘 작동할 것이라고 생각하지 않습니다. 모든 변수는 모듈에 바인딩되며, 모듈은 반복적으로 인스턴스화 될 수 없습니다.

클래스를 사용하려는 경우, 파이썬에서는 비공개 클래스나 비공개 생성자를 생성할 수 있는 방법이 없으므로 API 사용 규칙을 통해서만 다중 인스턴스화에 대해 보호할 수 있습니다. 여전히 모듈에 메서드를 넣고 모듈을 싱글톤으로 간주하는 것이 좋습니다.

반응형

댓글