GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — python-patterns/pool.py at master · jxiaodev/python-patterns Expand file tree/ Copy pathpool.pyMore file actions 52 lines (38 loc) · 1.32 KB / Copy pathpool.pyFile metadata and controls52 lines (38 loc) · 1.32 KB 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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 '''http://stackoverflow.com/questions/1514120/python-implementation-of-the-object-pool-design-pattern''' class qObj(): _q = None o = None def __init__(self, dQ, autoGet = False): self._q = dQ if autoGet == True: self.o = self._q.get() def __enter__(self): if self.o == None: self.o = self._q.get() return self.o def __exit__(self, type, value, traceback): if self.o != None: self._q.put(self.o) self.o = None def __del__(self): if self.o != None: self._q.put(self.o) self.o = None if __name__ == "__main__": try: import queue as Queue except: # python 2.x compatibility import Queue def testObj(Q): someObj = qObj(Q, True) print('Inside func: {}'.format(someObj.o)) aQ = Queue.Queue() aQ.put("yam") with qObj(aQ) as obj: print("Inside with: {}".format(obj)) print('Outside with: {}'.format(aQ.get())) aQ.put("sam") testObj(aQ) print('Outside func: {}'.format(aQ.get())) if not aQ.empty(): print(aQ.get()) |
| You are visitor 01402520 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |