Вы рассмотрели слушателя события вместо того, чтобы установить атрибут? Среди прочего это позволяет Вам передать параметры, который был проблемой, с которой я столкнулся при попытке сделать это. Все еще необходимо сделать это дважды для IE и Mozilla:
function makeEvent(element, callback, param, event) {
function local() {
return callback(param);
}
if (element.addEventListener) {
//Mozilla
element.addEventListener(event,local,false);
} else if (element.attachEvent) {
//IE
element.attachEvent("on"+event,local);
}
}
makeEvent(execBtn, alert, "hey buddy, what's up?", "click");
Просто позволяют событию быть именем как "щелчок" или "наведение мыши".
Как насчет использования repr () кортежа:
s[repr((1,2,3))] = 4
Согласно документам ,
значения (не ключи!) на полке может быть произвольным Python objects
Мой акцент: ключи от полки должны быть строками, точка. Итак, вам нужно превратить ваш кортеж в строку; в зависимости от того, что у вас будет в кортеже, repr
, некоторые separator.join
, травление, маршалинг и т. д. могут быть плодотворно использованы для этой цели.
Почему бы не использовать словари, если вы хотите иметь произвольные ключи? Другой вариант - создать класс-оболочку вокруг кортежа с помощью метода repr или str , чтобы преобразовать его в строку. Я думаю о библиотеке (естественный отклик на полки) - ваш кортеж может быть элементами в десятичном формате Дьюи , а str создает конкатенированное полное представление.