Javascriptでは、次のように書くかもしれません
var ids = ['item0', 'item1', 'item2', 'item3']; // variable length
function click_callback(number, event)
{
console.log('this is: ', number);
}
for (var k = 0; k < ids.length; k += 1)
{
document.getElementById(ids[k]).onclick = click_callback.bind(null, k);
}
k
そのため、関数が呼び出されるまでに値が変更されていても、登録時の値をコールバック関数に渡すことができます。
Pythonには同等のことを行う方法がありますか?
具体的な状況は次のとおりです(ただし、一般的な回答を好みます):
可変数の matplotlib プロットがあります (座標ごとに 1 つ)。それぞれに SpanSelector があります。これは、何らかの理由で 2 つの制限ポイントのみをコールバック関数に渡すように設計されています。ただし、それらはすべて同じコールバック関数を持っています。ので、私は持っています:
def span_selected(min, max):
しかし、私は必要です
def span_selected(which_coordinate, min, max):
コールバックを登録する時点ではもちろん座標はわかっていますが、関数を呼び出すときには座標を知る必要があります。Javascriptでは、次のようなことをします
callback = span_selected.bind(null, coordinate)
私はPythonで何をしますか?