SORU
18 HAZİRAN 2009, PERŞEMBE


Python: Bağlama İlişkisiz bir Yöntem?

Python, çağırmadan ilişkisiz bir yöntem bağlamak için bir yolu var mı?

Ben yazılı bir wxPython programı, ve belli bir sınıfın karar verdim çok iyi olur grup tüm verileri benim düğmeleri birlikte bir sınıf düzeyinde listesi dizilerini, bunun gibi

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 handler tüm değerlerin ilişkisiz yöntemleri, muhteşem bir parıltıyla program benim patlar ve ben ağlıyorum bu yana.

Etrafında gibi görünüyor ne için çevrimiçi çözüm oldukça basit, çözülebilir bir sorun olmalı bakıyordum. Ne yazık ki bir şey bulamadım. Şu an kullanıyorum functools.partial Bu sorunu çözmek için, ama bilen biri varsa bir temiz duygu, sağlıklı, Pythonic yol bağlamak ilişkisiz bir yöntem için bir örnek ve devam geçirmeden olmadan diyorsun?

CEVAP
18 HAZİRAN 2009, PERŞEMBE


Tüm fonksiyonları da vardırtanımlayıcıları__get__ kendi yöntemini çağırarak onları bağlamak:,

bound_handler = handler.__get__(self, MyWidget)

Burada R. ... ... Hettinger mükemmel guide tanımlayıcıları için.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Eric Anthony

    Eric Anthony

    13 AĞUSTOS 2011
  • Helder Barreto

    Helder Barre

    22 Mayıs 2006
  • Ty Moss

    Ty Moss

    20 Kasım 2007