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

  • Bryan Adams

    Bryan Adams

    30 Mart 2006
  • hockeywebcasts

    hockeywebcas

    31 EKİM 2012
  • xiaoyu85

    xiaoyu85

    20 ŞUBAT 2010