Комментарии Guido van Rossum, создателя Python, в списке рассылки python-dev
(проверьте архивы за сентябрь 2014 года ; по моему опыту, точные URL-адреса для конкретных сообщений имеют способ изменения от время от времени), в ответ на перекрестный вызов OP этого вопроса в этом списке:
В понедельник, 15 сентября 2014 года в 3:46 вечера Марк Лоуренс писал:
Я предполагаю, что он основан на концепциях нарезки. Из документов "s.insert (i, x) - вставляет x в s по индексу, указанному i (так же, как s [i: i] = [x])".
blockquote>Ах, да. Он соответствует тигам типа s [100:], который является пустой строкой, если s короче 100.
blockquote>И в другом ответе:
Эта функция имеет существовал с самых ранних дней Python, и даже если бы мы все согласились, что это было неправильно, мы не могли его изменить - это просто сломало бы слишком много существующего кода. Я не могу вспомнить, почему я сделал это таким образом, но это был определенно сознательный выбор; вероятно, какой-то симметрии или кромки. (Обратите внимание, что он тоже работает на другом конце - a.insert (-100, x) будет вставлять x в начале a, если a имеет менее 100 элементов.)
blockquote>В конечном счете, такое решение является дизайнерским решением. Почти всегда есть конкурирующие проблемы, и вы никогда не сможете найти что-то, что будет интуитивно понятным для всех. Посмотрите, как много разных языков обрабатывают концепцию как фундаментальную, как True и False (на некоторых языках они идентичны числам 1 и 0, а на некоторых языках - ненулевое значение True, а на некоторых языках True и False идентичны characters '1' и '0' (да, действительно!), на некоторых языках они полностью несовместимы с числами или любым другим не строго булевым типом, а на некоторых языках пустые контейнеры False, в другие - это правда, выбор продолжается и продолжается). Или посмотрите на nil / null / None, которые также имеют интересные взаимодействия с булевыми и другими вычислениями. Некоторые языки даже имеют Maybe.
Способ, которым Python обрабатывает вставку списка, удобен в некоторых ситуациях, и достаточно людей считают полезным, что они написали код, который использует и зависит от того, как вставлять себя таким образом. Возможно, документация может быть небольшим яснее, но это действительно не так уж непонятно; и в любом случае, как только вы попробуете его, вы увидите, что он делает, и вы соответственно напишите свой код Python.
Да, вам нужно установить для него заголовок моста. то вы можете вызвать свой объект следующим образом:
var merchantConf = PGMerchantConfiguration.default()
Пошаговый шаг:
1) Загрузить библиотеку из Github
2) Создайте мостовой заголовок.h следующим образом:
3) Теперь в проекте Target задайте заголовок заголовка header.h
4) Перетащите содержимое папки Paytm Sdk
5) Ваш заголовочный файл должен выглядеть как
Следуя всем вышеперечисленным шагам , теперь вы можете создать объект
var merchantConf = PGMerchantConfiguration.default()
Надеюсь, что это поможет.