| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1,54 +1,51 @@ | |||
| 1 | 1 | """http://stackoverflow.com/questions/1514120/python-implementation-of-the-object-pool-design-pattern""" | |
| 2 | 2 | ||
| 3 | 3 | ||
| 4 | - class qObj(): | ||
| 5 | - _q = None | ||
| 6 | - o = None | ||
| 7 | - | ||
| 8 | - def __init__(self, dQ, autoGet = False): | ||
| 9 | - self._q = dQ | ||
| 10 | - | ||
| 11 | - if autoGet == True: | ||
| 12 | - self.o = self._q.get() | ||
| 4 | + class QueueObject(): | ||
| 5 | + def __init__(self, queue, auto_get=False): | ||
| 6 | + self._queue = queue | ||
| 7 | + self.object = self._queue.get() if auto_get else None | ||
| 13 | 8 | ||
| 14 | 9 | def __enter__(self): | |
| 15 | - if self.o == None: | ||
| 16 | - self.o = self._q.get() | ||
| 17 | - return self.o | ||
| 10 | + if self.object is None: | ||
| 11 | + self.object = self._queue.get() | ||
| 12 | + return self.object | ||
| 18 | 13 | ||
| 19 | 14 | def __exit__(self, type, value, traceback): | |
| 20 | - if self.o != None: | ||
| 21 | - self._q.put(self.o) | ||
| 22 | - self.o = None | ||
| 15 | + if self.object is not None: | ||
| 16 | + self._queue.put(self.object) | ||
| 17 | + self.object = None | ||
| 23 | 18 | ||
| 24 | 19 | def __del__(self): | |
| 25 | - if self.o != None: | ||
| 26 | - self._q.put(self.o) | ||
| 27 | - self.o = None | ||
| 20 | + if self.object is not None: | ||
| 21 | + self._queue.put(self.object) | ||
| 22 | + self.object = None | ||
| 28 | 23 | ||
| 29 | 24 | ||
| 30 | - if __name__ == "__main__": | ||
| 25 | + def main(): | ||
| 31 | 26 | try: | |
| 32 | - import queue as Queue | ||
| 33 | - except: # python 2.x compatibility | ||
| 34 | - import Queue | ||
| 27 | + import queue | ||
| 28 | + except ImportError: # python 2.x compatibility | ||
| 29 | + import Queue as queue | ||
| 35 | 30 | ||
| 36 | - def testObj(Q): | ||
| 37 | - someObj = qObj(Q, True) | ||
| 38 | - print('Inside func: {}'.format(someObj.o)) | ||
| 31 | + def test_object(queue): | ||
| 32 | + queue_object = QueueObject(queue, True) | ||
| 33 | + print('Inside func: {}'.format(queue_object.object)) | ||
| 39 | 34 | ||
| 40 | - aQ = Queue.Queue() | ||
| 41 | - aQ.put("yam") | ||
| 35 | + sample_queue = queue.Queue() | ||
| 42 | 36 | ||
| 43 | - with qObj(aQ) as obj: | ||
| 44 | - print("Inside with: {}".format(obj)) | ||
| 37 | + sample_queue.put('yam') | ||
| 38 | + with QueueObject(sample_queue) as obj: | ||
| 39 | + print('Inside with: {}'.format(obj)) | ||
| 40 | + print('Outside with: {}'.format(sample_queue.get())) | ||
| 45 | 41 | ||
| 46 | - print('Outside with: {}'.format(aQ.get())) | ||
| 42 | + sample_queue.put('sam') | ||
| 43 | + test_object(sample_queue) | ||
| 44 | + print('Outside func: {}'.format(sample_queue.get())) | ||
| 47 | 45 | ||
| 48 | - aQ.put("sam") | ||
| 49 | - testObj(aQ) | ||
| 46 | + if not sample_queue.empty(): | ||
| 47 | + print(sample_queue.get()) | ||
| 50 | 48 | ||
| 51 | - print('Outside func: {}'.format(aQ.get())) | ||
| 52 | 49 | ||
| 53 | - if not aQ.empty(): | ||
| 54 | - print(aQ.get()) | ||
| 50 | + if __name__ == '__main__': | ||
| 51 | + main() | ||
| Back | FazBrowse Home | New Git URL |
0 commit comments