Browse Source

using @property in example

...also wrapped the code at 79 characters
tamasgal 12 years ago
parent
commit
6750d050e2
1 changed files with 19 additions and 15 deletions
  1. 19 15
      observer.py

+ 19 - 15
observer.py

@@ -25,24 +25,28 @@ class Data(Subject):
     def __init__(self, name=''):
     def __init__(self, name=''):
         Subject.__init__(self)
         Subject.__init__(self)
         self.name = name
         self.name = name
-        self.data = 0
-
-    def setData(self, data):
-        self.data = data
+        self._data = 0
+
+    @property
+    def data(self):
+        return self._data
+    
+    @data.setter
+    def data(self, value):
+        self._data = value):
         self.notify()
         self.notify()
 
 
-    def getData(self):
-        return self.data
-
 
 
 class HexViewer:
 class HexViewer:
     def update(self, subject):
     def update(self, subject):
-        print('HexViewer: Subject %s has data 0x%x' % (subject.name, subject.getData()))
+        print('HexViewer: Subject %s has data 0x%x' %
+              (subject.name, subject.data))
 
 
 
 
 class DecimalViewer:
 class DecimalViewer:
     def update(self, subject):
     def update(self, subject):
-        print('DecimalViewer: Subject %s has data %d' % (subject.name, subject.getData()))
+        print('DecimalViewer: Subject %s has data %d' %
+              (subject.name, subject.data))
 
 
 
 
 # Example usage...
 # Example usage...
@@ -57,20 +61,20 @@ def main():
     data2.attach(view1)
     data2.attach(view1)
 
 
     print("Setting Data 1 = 10")
     print("Setting Data 1 = 10")
-    data1.setData(10)
+    data1.data(10)
     print("Setting Data 2 = 15")
     print("Setting Data 2 = 15")
-    data2.setData(15)
+    data2.data(15)
     print("Setting Data 1 = 3")
     print("Setting Data 1 = 3")
-    data1.setData(3)
+    data1.data(3)
     print("Setting Data 2 = 5")
     print("Setting Data 2 = 5")
-    data2.setData(5)
+    data2.data(5)
     print("Detach HexViewer from data1 and data2.")
     print("Detach HexViewer from data1 and data2.")
     data1.detach(view2)
     data1.detach(view2)
     data2.detach(view2)
     data2.detach(view2)
     print("Setting Data 1 = 10")
     print("Setting Data 1 = 10")
-    data1.setData(10)
+    data1.data(10)
     print("Setting Data 2 = 15")
     print("Setting Data 2 = 15")
-    data2.setData(15)
+    data2.data(15)
 
 
 if __name__ == '__main__':
 if __name__ == '__main__':
     main()
     main()