Python: ผูกวิธีหลุด?
ใน Python มีวิธีการผูก unbound method โดยไม่ต้องเรียกมันหรือไม่? ฉันกำลังเขียนโปรแกรม 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เพื่อแก้ไขปัญหานี้ แต่มีใครรู้บ้างว่ามีวิธี Pythonic ที่สะอาดและมีสุขภาพดีในการผูกวิธีที่ไม่ถูกผูกไว้กับอินสแตนซ์และดำเนินการต่อโดยไม่เรียกมัน