[contact-form-7 404 "Not Found"]

Fique informado sobre as principais tendências em energias renováveis. Deixe seu e-mail e receba nossos conteúdos.

Sem categoria

파이썬 싱글 톤 예제

이 구현은 내부 클래스에서 단일 인터페이스를 숨기고 내부 클래스의 정확히 하나의 인스턴스를 만듭니다. 외부 클래스는 내부 클래스에 대한 핸들이며 모든 요청을 위임합니다. 핸들 개체의 id()가 변경되는 동안 단일 동작을 구현하는 내부 클래스의 id()는 일정합니다. 파이썬의 메타 클래스에 대한 보다 자세한 소개를 보려면 여기를 살펴보십시오. 우리가 전에 여러 번 반복했듯이, 파이썬의 모든 것은 객체이며 이것은 클래스 정의를 포함합니다. 따라서 형식이 있어야 합니다. 아래 예에서 짝수 유형은 `type`입니다. 형식은 기본 제공 클래스조차도 인스턴스인 메타클래스입니다. 파이썬은 클래스 / 정적 메소드에 대한 개념이 없기 때문에 싱글 톤을 “올바른 방법”으로 만들 수 없습니다. 모든 실행 가능한 솔루션은 일종의 타협이 될 것입니다. 단일 개체를 요청하는 코드의 모든 부분으로 반환합니다.

아마도 가장 간단한 디자인 패턴은 특정 형식의 하나의 개체만 제공하는 방법입니다. 이렇게 하려면 프로그래머의 손에서 개체 생성을 제어해야 합니다. 이 작업을 수행하는 편리한 방법 중 하나는 개인 중첩 된 내부 클래스의 단일 인스턴스에 위임하는 것입니다. 이 예제에서 클래식 싱글톤을 사용해 보겠습니다: 프로그램의 수명 동안 하나의 데이터 인스턴스만 만들어야 하는 상황이 있습니다. 예를 들어 클래스 인스턴스, 목록 또는 사전일 수 있습니다. 두 번째 인스턴스를 만드는 것은 바람직하지 않습니다. 이로 인해 논리적 오류가 발생하거나 프로그램이 오작동할 수 있습니다. 하나의 데이터 인스턴스만 만들 수 있는 디자인 패턴을 singleton이라고 합니다. 이 문서에서는 모듈 수준, 클래식 및 보그 싱글톤에 대해 알아봅니다. 또한 작업 방식, 사용 시기, 단일 톤을 사용하여 공유 리소스에 액세스하는 2스레드 웹 크롤러를 빌드하는 방법에 대해서도 알아봅니다. 모든 모듈은 파이썬의 모듈 가져오기 단계로 인해 본질적으로 싱글 톤입니다 : Singleton의 인스턴스에 ID를 사용하는 보조 문제 외에도 하위 클래스성 측면에서 구체적인 문제가 있습니다.

클라이언트 코드가 제시된 레시피에서 실제 클래스(Singleton._ _impl)를 하위 클래스로 분류하는 것은 실제로 불가능합니다. 래퍼 클래스(Singleton)를 하위 클래스로 분류하는 것은 다른 클라이언트가 여전히 하위 클래스 버전을 얻을 수 있기 때문에 동일하지 않습니다. Singleton 디자인 패턴이 해결해야 하는 문제 목록에서 하위 클래스에 대한 기능이 높기 때문에 이는 상당한 약점입니다. 이 문제에 대한 파이썬 솔루션은 레시피 5.23을 참조하십시오. 이 예제에서는 BeautifulSoup이라는 웹 사이트를 구문 분석 및 화면 스크래핑하기 위한 라이브러리와 HTTP 클라이언트 라이브러리 httplib2가 필요합니다. 다음 명령 중 하나를 모두 설치하는 것으로 충분합니다.