मैं कार्यकर्ताओं के एक जोड़े के लिए अजगर में Observable
पैटर्न लागू करना चाहते हैं, और यह उपयोगी टुकड़ा भर में आया था:पायथन में एक कॉलबैक को लागू - वर्तमान कार्य करने के लिए एक प्रतिदेय संदर्भ गुजर
class Event(object):
pass
class Observable(object):
def __init__(self):
self.callbacks = []
def subscribe(self, callback):
self.callbacks.append(callback)
def fire(self, **attrs):
e = Event()
e.source = self
for k, v in attrs.iteritems():
setattr(e, k, v)
for fn in self.callbacks:
fn(e)
स्रोत: Here
जैसा कि मैं इसे समझता हूं, subscribe
के लिए, मुझे fire
पर कॉल करने के लिए कॉलबैक पास करने की आवश्यकता होगी। यदि कॉलिंग फ़ंक्शन class
विधि था, तो शायद मैं self
का उपयोग कर सकता था, लेकिन इसकी अनुपस्थिति में - मैं सीधे कॉलबैक कैसे प्राप्त कर सकता हूं जो self.callbacks.append(callback)
बिट के लिए उपयोगी हो सकता है?
विधियों में 'स्वयं' तर्क गुम है। –
हूप्स। उदाहरण विधि पर इसे भूल गए। स्थैतिक विधि को 'स्वयं' नहीं मिलता है। – Amber
ग्रेट, बहुत बहुत धन्यवाद - मैं वास्तव में स्थिर के साथ जुड़ा हुआ था :) – malangi