싱글턴 패턴은 일반적으로 사용되는 소프트웨어 디자인 패턴입니다. 이 패턴의 주요 목적은 특정 클래스의 인스턴스가 하나만 존재하도록 하는 것입니다. 싱글톤 개체는 특정 클래스의 인스턴스 하나만 전체 시스템에 나타나도록 하려는 경우 유용합니다.
Python에서는 다양한 방법을 사용하여 싱글톤 모드를 구현할 수 있습니다(권장 학습: Python 비디오 튜토리얼)
실제로 Python 모듈은 자연스러운 싱글톤 모드입니다. 한 번 가져오면 .pyc 파일이 생성됩니다. 두 번째로 가져오면 모듈 코드를 다시 실행하지 않고 .pyc 파일이 직접 로드됩니다. 따라서 싱글톤 객체를 얻으려면 모듈에서 관련 함수와 데이터만 정의하면 됩니다.
데코레이터를 사용하세요
def Singleton(cls): _instance = {} def _singleton(*args, **kargs): if cls not in _instance: _instance[cls] = cls(*args, **kargs) return _instance[cls] return _singleton @Singleton class A(object): a = 1 def __init__(self, x=0): self.x = x a1 = A(2) a2 = A(3)
클래스를 사용하세요. 싱글턴을 구현할 때 스레드 안전성을 보장하기 위해 내부적으로 잠금을 추가해야 합니다
객체를 인스턴스화하면 객체가 먼저 실행된다는 것을 알고 있습니다. 클래스의 __new__ 메소드가 호출되어(우리가 작성하지 않을 때 기본적으로 object.__new__가 호출됨) 클래스의 __init__ 메소드가 실행되어 객체를 초기화할 수 있습니다. 이를 바탕으로
__metaclass__(메타클래스)를 사용하세요.
더 많은 Python 관련 기술 기사를 보려면 Python Tutorial 칼럼을 방문하세요!
위 내용은 파이썬에서 싱글턴을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!