Я продолжаю видеть, как люди пишут обертки, скажем, модуль, написанный на языке X, чтобы использовать его в языке Y. Я хотел знать основы написания таких оберток. С чего начать? Мой вопрос здесь более конкретный для libgnokii, как мне начать писать привязки python для него.Письменные переплеты и обертки
ответ
Вы можете начать использовать: extending python with c or c++ И тогда, когда вы решите, что это слишком много хлопот, вы можете проверить swig или, возможно, Boost.Python. ctypes также может быть полезна.
Я сделал ручную упаковку классов C++, и я использовал swig. swig было намного проще в использовании, но в конце концов я хотел сделать то, что было нелегко сделать (или мне было слишком ленив, чтобы понять, как). Поэтому я закончил ручную упаковку. Это немного работа, но если вы знаете немного C, это очень удобно.
Вы можете начать с поиска here для получения информации о расширении Python с помощью C. Вы, вероятно, захотите подумать о том, как перевести API libgnokii на что-то Pythonic, пока вы на нем. Если вы не хотите много работать, вы можете просто написать тонкую оболочку, которая переводит все вызовы API gnokii в функции Python.
- 1. WPF: мягкие удаления и переплеты?
- 2. Методы обертки и классы обертки
- 3. AngularJS переплеты с машинопись и ng.IComponentController
- 4. Письменные модули?
- 5. Laravel - переплеты файл для хранилищ
- 6. MVVM WPF переплеты с RelativeSource
- 7. PDO неправильно переплеты с Laravel
- 8. java.rmi.NotBoundException. Обнаружив, что переплеты доступны
- 9. Письменные приложения с C
- 10. Письменные функции в C++
- 11. Письменные языки для JVM
- 12. письменные правила .htaccess
- 13. Письменные компиляторы, лексический анализ?
- 14. Письменные задания в Meteor
- 15. Письменные слова назад
- 16. Письменные функции в Prolog
- 17. Письменные инспекции Intelli-J?
- 18. Письменные уравнения в matlab
- 19. Письменные доказательства в Agda
- 20. Письменные тесты для DAO
- 21. Изолирующие устройства и письменные тесты в Android
- 22. письменные столы и параметры в гаммах
- 23. Письменные тесты для приложений Flow и Mortar
- 24. Письменные письма и цифры в форме C#
- 25. класс обертки и диспетчер
- 26. Объекты обертки и равенство
- 27. Обертки и формы объектов
- 28. Переполнение обертки и div
- 29. питон декораторы и обертки
- 30. Получение более-родовые переплеты из Ninject
ТАК делает вещи Pythonic означает писать всю библиотеку как модуль с нуля? – tsudot
Нет, не обязательно. Один из примеров из того, что я сделал: у меня был класс C++, который мне нужен, чтобы создать объект, прежде чем я смогу использовать на нем функцию (в этом случае функция должна быть статической). Вместо того, чтобы пользователь python-модуля прошел одни и те же шаги, я просто построил объект этого класса в моем расширении python и разоблачил функцию как функцию в модуле python, скрывая тот факт, что он принадлежал классу, который wasn Это действительно необходимо. Таким образом, немного убирают интерфейсы. –