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

  • RocketJump

    RocketJump

    22 ŞUBAT 2006
  • Toddler Fun Learning

    Toddler Fun

    8 ŞUBAT 2013
  • UrAvgConsumer

    UrAvgConsume

    1 Ocak 2012