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

  • Grace Su

    Grace Su

    6 Ocak 2006
  • HBO

    HBO

    17 Mayıs 2006
  • Vicious Computers

    Vicious Comp

    14 EKİM 2006