Найти - Пользователи
Полная версия: Привязка к python-программе кода на другом языке
Начало » Python для новичков » Привязка к python-программе кода на другом языке
1
kukuruku11
Доброго времени суток!
Как привязать исходники программы, написанные на стороннем языке (cpp,java), к питон коду?

И еще вопрос вдогонку, скорее общий и относится в методологии написания программ
посоветуйте ресурсы для изучения методики написания прог и их архитектуры. которые могут ответить на вопросы типа: структура программы? упаковка исходного кода в испольняемый файл? включение стороннего кода опять же? установка и испольнение кода в системе? и т.п. ориентируюсь на unix-системы,

стараюсь читать много инфы и буду благодарен за любое направление
doza_and
kukuruku11
Как привязать
Что вы имеете ввиду?
Воспользоваться? Самый простой и универсальный способ - вызвать исполняемый модуль. см subprocess.
Все остальное (ctypes, swig, boostpython, socket ) если этого не хватит.

По поводу остальных вопросов посоветую прочитать Страуструпа. https://vk.com/doc16756779_228187070?hash=88e5b6ccd4f822602c&dl=ccc12f550fe4ac896f. Если научитесь писать на C то все эти вопросы отпадут. Многие мои коллеги вообще считают что питон не должен быть первым изученным языком программирования. Считают что C гораздо более подходящий язык для этого.
py.user.next
doza_and
Если научитесь писать на C
Страуструп - это C++, а C - это Ритчи (язык C), Томпсон (язык B)
kukuruku11
doza_and
Что вы имеете ввиду?
Воспользоваться?

Чтобы не городить велосипед, найти код с нужным функционалом и использовать его результаты работы. Наверно, да, это больше связано с вводом/выводом данных.
В случае когда код на python это можно сделать import. Для остальных случаев я и хотел узнать как.

doza_and
Многие мои коллеги вообще считают что питон не должен быть первым изученным языком программирования. Считают что C гораздо более подходящий язык для этого.

Ну, тут куча мнений, на очередной холивар)
Понимаю, что С более фундаментален, но решил c питона зайти.


doza_and
Вопрос взаимодействия программ это вопрос понимания устройства компьютера и операционной системы. Операционная система на то и есть чтобы объединять функционал программ сделанных на разных языках. Для UNIX среди всех языков разобраться в этом лучше всего поможет изучение C.
py.user.next
Страуструп - это C++, а C - это Ритчи (язык C), Томпсон (язык B)
Да я тут сэкономил на вводе текста. Ваш вопрос об архитектуре программ в большей степени рассматривается в надстройке над С языке C++. Если начнете изучать C++ то без Ритчи не обойдетесь :)
kukuruku11
Для остальных случаев я и хотел узнать как.
В общем случае никак. Точнее для каждого языка по своему. И чтобы достаточно глубоко залезть в чужие программы надо знать оба связываемых языка. т.е. Если вы найдете полезный код на C. то вы не сможете использовать результаты, потому что они будут выражены в терминах языка C, не зная этого языка в не поймете что они означают на языке python. И так с любым другим языком. Исключение это когда результат файлы простой структуры.
Вопросы у вас интересные и правильные, но нужно побольше конкретики. Выберите задачку попроще и попробуйте ее решить.

По поводу использования результатов я бы выделил следующие большие группы:
  • Обмен файлами и потоками байтов (уровень ОС)
  • С образные интерфейсы (структуры и функции динамические библиотеки).
  • WWW образные
  • ODBC образные
  • Java образные
  • .Net образные
Rodegast
> Как привязать исходники программы, написанные на стороннем языке (cpp,java), к питон коду…Чтобы не городить велосипед, найти код с нужным функционалом и использовать его результаты работы.

Тут всё от конкретного языка зависит. Например С подключить просто, а вот для java скорей всего только Jython загрузит. Обычно подключать что-то стороннее приходится редко, того что написано на Python-e обычно хватает.

> посоветуйте ресурсы для изучения методики написания прог и их архитектуры

Если ФП не пугает, то прочитай SICP очень правильная книга.
http://newstar.rinet.ru/~goga/sicp/sicp.pdf
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB