Skip to content

Commit 6750d05

Browse files
committed
using @Property in example
...also wrapped the code at 79 characters
1 parent b6f3a82 commit 6750d05

File tree

1 file changed

+19
-15
lines changed

1 file changed

+19
-15
lines changed

observer.py

+19-15
Original file line numberDiff line numberDiff line change
@@ -25,24 +25,28 @@ class Data(Subject):
2525
def __init__(self, name=''):
2626
Subject.__init__(self)
2727
self.name = name
28-
self.data = 0
29-
30-
def setData(self, data):
31-
self.data = data
28+
self._data = 0
29+
30+
@property
31+
def data(self):
32+
return self._data
33+
34+
@data.setter
35+
def data(self, value):
36+
self._data = value):
3237
self.notify()
3338

34-
def getData(self):
35-
return self.data
36-
3739

3840
class HexViewer:
3941
def update(self, subject):
40-
print('HexViewer: Subject %s has data 0x%x' % (subject.name, subject.getData()))
42+
print('HexViewer: Subject %s has data 0x%x' %
43+
(subject.name, subject.data))
4144

4245

4346
class DecimalViewer:
4447
def update(self, subject):
45-
print('DecimalViewer: Subject %s has data %d' % (subject.name, subject.getData()))
48+
print('DecimalViewer: Subject %s has data %d' %
49+
(subject.name, subject.data))
4650

4751

4852
# Example usage...
@@ -57,20 +61,20 @@ def main():
5761
data2.attach(view1)
5862

5963
print("Setting Data 1 = 10")
60-
data1.setData(10)
64+
data1.data(10)
6165
print("Setting Data 2 = 15")
62-
data2.setData(15)
66+
data2.data(15)
6367
print("Setting Data 1 = 3")
64-
data1.setData(3)
68+
data1.data(3)
6569
print("Setting Data 2 = 5")
66-
data2.setData(5)
70+
data2.data(5)
6771
print("Detach HexViewer from data1 and data2.")
6872
data1.detach(view2)
6973
data2.detach(view2)
7074
print("Setting Data 1 = 10")
71-
data1.setData(10)
75+
data1.data(10)
7276
print("Setting Data 2 = 15")
73-
data2.setData(15)
77+
data2.data(15)
7478

7579
if __name__ == '__main__':
7680
main()

0 commit comments

Comments
 (0)