1
この良いPythonの練習ですか?メンバーをコピーしてインターフェイスを提供する方法として
import threading
import Queue
class Poppable(threading.Thread):
def __init__(self):
super(Poppable, self).__init__()
self._q = Queue.Queue()
# provide a limited subset of the Queue interface to clients
self.qsize = self._q.qsize
self.get = self._q.get
def run(self):
# <snip> -- do stuff that puts new items onto self._q
# this is why clients don't need access to put functionality
メンバーの機能を含むクラスのインターフェイスを「昇格する」というアプローチは、PythonのスタイルまたはZenに違反していますか?
主に私は通常、宣言ラッパー関数を伴うだろう、より標準的なもので、このアプローチを対比しようとしている:
def qsize(self):
return self._q.qsize()
def get(self, *args):
return self._q.get(*args)