Pythonで、それを呼び出さずにバインドされていないメソッドをバインドする方法はありますか?
私はwxPythonプログラムを書いていて、特定のクラスについて、すべてのボタンのデータをタプルのクラスレベルのリストとしてグループ化すると便利だと判断しました。
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)
問題は、のすべての値handler
がバインドされていないメソッドであるため、私のプログラムは壮大な炎で爆発し、私は泣きます。
比較的簡単で解決可能な問題であると思われる問題の解決策をオンラインで探していました。残念ながら何も見つかりませんでした。現在、私はfunctools.partial
これを回避するために使用していますが、バインドされていないメソッドをインスタンスにバインドし、それを呼び出さずに渡し続けるための、クリーンで健康的なPythonicの方法があるかどうか誰かが知っていますか?