在 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 图(每个坐标一个)。每个都有一个 SpanSelector,出于某种原因,它被设计为仅将两个限制点传递给回调函数。但是,它们都有相同的回调函数。所以我有:
def span_selected(min, max):
但是我需要
def span_selected(which_coordinate, min, max):
注册回调的时候当然知道坐标,但是调用函数的时候需要知道。在Javascript中,我会做类似的事情
callback = span_selected.bind(null, coordinate)
我会在 Python 中做什么?