पायथन में, क्या बिना बुलाए एक अनबाउंड विधि को बांधने का एक तरीका है?
मैं एक wxPython प्रोग्राम लिख रहा हूं, और एक निश्चित वर्ग के लिए मैंने फैसला किया है कि मेरे सभी बटन के डेटा को एक साथ ट्यूपल्स के वर्ग-स्तरीय सूची के रूप में समूहित करना अच्छा होगा:
class MyWidget(wx.Window):
buttons = [("OK", OnOK),
("Cancel", OnCancel)]
# ...
def Setup(self):
for text, handler in MyWidget.buttons:
# This following line is the problem line.
b = wx.Button(parent, label=text).Bind(wx.EVT_BUTTON, handler)
समस्या यह है कि चूंकि सभी मूल्य handlerअनबाउंड तरीके हैं, इसलिए मेरा कार्यक्रम एक शानदार धमाके में फट गया और मैं रो पड़ा।
मैं एक समाधान के लिए ऑनलाइन के आसपास देख रहा था कि ऐसा लगता है कि एक अपेक्षाकृत सीधा, हल करने योग्य समस्या होनी चाहिए। दुर्भाग्य से मुझे कुछ नहीं मिला। अभी, मैं functools.partialइस के आसपास काम करने के लिए उपयोग कर रहा हूं , लेकिन क्या किसी को पता है कि क्या एक साफ-सुथरा, स्वस्थ, पाइथोनिक तरीका एक अनबाउंड विधि को एक उदाहरण के साथ बांधने के लिए है और इसे कॉल किए बिना इसे जारी रखना है?