Python'da, bağlanmamış bir yöntemi çağırmadan bağlamanın bir yolu var mı?
Bir wxPython programı yazıyorum ve belirli bir sınıf için tüm düğmelerimin verilerini sınıf düzeyinde bir tuple listesi olarak gruplamanın güzel olacağına karar verdim, şöyle:
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)
Sorun şu ki, tüm değerleri handler
bağlı olmayan yöntemler olduğundan, programım muhteşem bir alevle patlıyor ve ağlıyorum.
Görece basit, çözülebilir bir problem gibi görünen bir şeye bir çözüm bulmak için internette etrafa bakıyordum. Maalesef hiçbir şey bulamadım. Şu anda, bunu aşmak için kullanıyorum functools.partial
, ancak bağlanmamış bir yöntemi bir örneğe bağlamanın ve onu aramadan geçirmeye devam etmenin temiz, sağlıklı, Pythonic bir yolu olup olmadığını bilen var mı?