>  기사  >  백엔드 개발  >  파이썬에서 싱글턴을 구현하는 방법

파이썬에서 싱글턴을 구현하는 방법

(*-*)浩
(*-*)浩원래의
2019-06-27 09:28:513375검색

싱글턴 패턴은 일반적으로 사용되는 소프트웨어 디자인 패턴입니다. 이 패턴의 주요 목적은 특정 클래스의 인스턴스가 하나만 존재하도록 하는 것입니다. 싱글톤 개체는 특정 클래스의 인스턴스 하나만 전체 시스템에 나타나도록 하려는 경우 유용합니다.

파이썬에서 싱글턴을 구현하는 방법

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.