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

  • Christian Atlas

    Christian At

    26 Mart 2009
  • ExcelIsFun

    ExcelIsFun

    16 ŞUBAT 2008
  • paulandstorm

    paulandstorm

    4 EYLÜL 2006