python3의 단일 예

1652 단어

1. 단일 모드 요점


하나의 종류는 하나의 실례만 있을 수 있다
둘째, 이것은 반드시 스스로 이 실례를 만들어야 한다
셋째, 그것은 반드시 자체적으로 전체 시스템에 이 실례를 제공해야 한다.
네 개의 단일 예에서 몇 개의 대상을 만들든지 간에 모두 같은 메모리 대상을 조작한다
단일 모드: 특정한 클래스가 하나의 실례만 있는 것을 확보하고 자체적으로 실례화하여 전체 시스템에 이 실례를 제공한다. 이 클래스를 단일 모드라고 하는데 단일 모드는 대상 창설형 모드이다.
단일 모드 단순 코드 및 마법 방법
 class Test(object):

    __instance = None

    def __init__(self):  # 
        print("----init ----")

    def __del__(self): # 
        print("----del ----")

    def __str__(self):   # , 
        print("----str ----")

    def __new__(cls): # , 
        print("----new ----")
        if cls.__instance == None:
            cls.__instance = object.__new__(cls)
        return cls.__instance

test1 = Test()
print(id(test1))

test2 = Test()
print(id(test2)) 
#  

class Singleton(object):

    __instance = None

    __first_init = False

 

    def __new__(cls, age, name):

        if not cls.__instance:

            cls.__instance = object.__new__(cls)

        return cls.__instance

 

    def __init__(self, age, name):

        if not self.__first_init:

            self.age = age

            self.name = name

            Singleton.__first_init = True

 

 

a = Singleton(18, "dongGe")

b = Singleton(8, "dongGe")

 

print(id(a))

print(id(b))

 

 

print(a.age)

print(b.age)

 

a.age = 19

print(b.age)


실행 결과:
ubuntu@ubuntu- VirtualBox: ~/데스크탑/21805/13day$python3 01 - 단일 모드.py 140168837839672 140168837839672 18 18 19
단일 모드 이점
디자인 모델을 사용하는 것은 코드를 다시 사용할 수 있고 코드가 다른 사람에게 쉽게 이해되고 코드의 신뢰성을 확보하기 위해서이다

좋은 웹페이지 즐겨찾기