기본 콘텐츠로 건너뛰기

[python] observer pattern

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
class Observer(object):
    def __init__(self):
        self.a = []
    def register(self, listener):
        self.a.append(listener)
    def show(self):
        for i in self.a:
            isListener = isinstance(i, Listener1)
            print(isListener)
class Listener1():
    def __init__(self, text ):
        self.text = text
    def text_show(self):
        print(self.text)
ob = Observer()
listener1 = Listener1('text1')
listener2 = Listener1('text2')
listener3 = Listener1('text3')
ob.register(listener1)
ob.register(listener2)
ob.register(listener3)
ob.show()
cs

isinstance함수는 파이썬 내장 함수이다. 

타입을 검사를 하여 false, true를 반환을 해준다

위코드를 실행을 하면



$python p.py

>>> True
True
True

1
2
isListener = isinstance(i, list)
isListener = isinstance(i, dict)
cs

13번째 줄을 위 코드로 바꾼다면 False가 뜰 것이다.

댓글