पायथन में, क्या इसे बिना कॉल किए एक अनबाउंड विधि बांधने का कोई तरीका है?पायथन: एक अनबाउंड विधि बांधें?
मैं एक wxPython कार्यक्रम लिख रहा हूँ, और एक निश्चित वर्ग मैंने तय कर लिया मेरे बटन के सभी डेटा को एक साथ tuples के एक वर्ग के स्तर के सूची के रूप में है, इसलिए की तरह समूह के लिए अच्छा होगा के लिए:
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
का उपयोग कर रहा हूं, लेकिन क्या किसी को पता है कि एक उदाहरण के लिए एक अनबाउंड विधि को बांधने के लिए एक साफ-सुथरा, स्वस्थ, पाइथोनिक तरीका है और इसे कॉल किए बिना इसे पास करना जारी रखें?
परिभाषित करें "अनबाउंड विधि" – Christopher
@Christopher - एक विधि है कि वस्तु से चूसा था की गुंजाइश के लिए बाध्य नहीं है, तो आप स्वयं को स्पष्ट रूप से पारित करने के लिए की है। –