Какой-либо способ использовать кортеж в качестве ключа в полке? (Python)

Вы рассмотрели слушателя события вместо того, чтобы установить атрибут? Среди прочего это позволяет Вам передать параметры, который был проблемой, с которой я столкнулся при попытке сделать это. Все еще необходимо сделать это дважды для 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");

Просто позволяют событию быть именем как "щелчок" или "наведение мыши".

5
задан 27 September 2009 в 02:24
поделиться

3 ответа

Как насчет использования repr () кортежа:

s[repr((1,2,3))] = 4
7
ответ дан 18 December 2019 в 11:58
поделиться

Согласно документам ,

значения (не ключи!) на полке может быть произвольным Python objects

Мой акцент: ключи от полки должны быть строками, точка. Итак, вам нужно превратить ваш кортеж в строку; в зависимости от того, что у вас будет в кортеже, repr , некоторые separator.join , травление, маршалинг и т. д. могут быть плодотворно использованы для этой цели.

7
ответ дан 18 December 2019 в 11:58
поделиться

Почему бы не использовать словари, если вы хотите иметь произвольные ключи? Другой вариант - создать класс-оболочку вокруг кортежа с помощью метода repr или str , чтобы преобразовать его в строку. Я думаю о библиотеке (естественный отклик на полки) - ваш кортеж может быть элементами в десятичном формате Дьюи , а str создает конкатенированное полное представление.

1
ответ дан 18 December 2019 в 11:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: