में प्रतिनिधि मैंने एक साधारण प्रतिनिधिमंडल पैटर्न का प्रदर्शन करने के लिए इस संक्षिप्त उदाहरण को लागू किया है। मेरा सवाल यह है कि। क्या ऐसा लगता है कि मैंने प्रतिनिधिमंडल को सही समझा है?पायथन
class Handler:
def __init__(self, parent = None):
self.parent = parent
def Handle(self, event):
handler = 'Handle_' +event
if hasattr(self, handler):
func = getattr(self, handler)
func()
elif self.parent:
self.parent.Handle(event)
class Geo():
def __init__(self, h):
self.handler = h
def Handle(self, event):
func = getattr(self.handler, 'Handle')
func(event)
class Steve():
def __init__(self, h):
self.handler = h
def Handle(self, event):
func = getattr(self.handler, 'Handle')
func(event)
class Andy():
def Handle(self, event):
print 'Andy is handling %s' %(event)
if __name__ == '__main__':
a = Andy()
s = Steve(a)
g = Geo(s)
g.Handle('lab on fire')
आप 'हैंडलर' कक्षा के साथ क्या कर रहे हैं? – Santa
यह एक बड़ा उदाहरण का हिस्सा है, और जब मैं इसे यहां पोस्ट करता हूं तो इससे छुटकारा पाने में भूल गया। – MattyW
उपरोक्त कोड में, आपके जियो, स्टीव और एंडी क्लास में एक हैंडल फ़ंक्शन है जिसमें आप getattr() को कॉल करते हैं। मैं गेटैटर को कॉल करने से पहले हैट्र() के साथ प्रतिनिधि ऑब्जेक्ट में वास्तव में मौजूद फ़ंक्शन की जांच करने की अनुशंसा करता हूं। मैं बस इसे इंगित करना चाहता था क्योंकि यह दुर्घटनाओं का स्रोत हो सकता है। – Ashbay