Лекция#13:ИнтеграцияPythonс другими языками 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Лекция#13:ИнтеграцияPythonс другими языками

Поиск

Ссылки

 

Список актуальных ссылок на различные графические библиотеки можно найти по следующему адресу:

 

http://phaseit.net/claird/comp.lang.python/python_GUI.html


 


Лекция#13:ИнтеграцияPythonс другими языками

программирования

 

C API

 

Доступные из языкаPythonмодули расширяются за счет модулей расширения (extension modules).Модули расширения можно писать на языкеCилиC++и вызывать из программ наPython.В этой лекции речь пойдет о реализацииPython,называемойCPython(Jython, реализация Python на платформе Java не будет рассматриваться).

 

Сама необходимость использования языкаCможет возникнуть,если реализуемый алгоритм,будучи запрограммирован наPython,работает медленно.Например,высокопроизводительные операции с массивами модуляNumeric (о котором говорилось в одной из предыдущих лекций)написаны на языкеC.Модули расширения позволяют объединить эффективность порождаемого компиляторомC/C++кодаcудобством и гибкостью интерпретатораPython.Необходимые сведения для создания модулей расширения дляPythonданы в исчерпывающем объеме в стандартной документации,а именно в документе"Python/C API Reference Manual" (справочное руководство по"Python/CAPI"). Здесь будут рассмотрены лишь основные принципы построения модуля расширения, без детальных подробностей обAPI.Стоит заметить,что возможностиPythonравно доступны и вC++,просто они выражены вC-декларациях,которые можно использовать в

 

C++.

 

Все необходимые для модуля расширения определения находятся в заголовочном файлеPython.h, который должен находится где-то на пути заголовочных файлов компилятора C/C++. Следует пользоваться теми же версиями библиотек, с которыми был откомпилированPython.Желательно,и той же маркой компилятораC/C++.

 

Связь с интерпретаторомPythonиз кода наCосуществляется путем вызова функций,определенных в интерпретатореPython.Все функции начинаются на Py или _Py,потому во

 

избежание конфликтов в модулях расширения не следует определять функций с подобными именами.

 

ЧерезC APIдоступны все встроенные возможности языкаPython (при необходимости,детальнее изучить этот вопрос можно по документации):

 

· высокоуровневый интерфейс интерпретатора(функции и макросы Py_Main(),

 

PyRun_String(),PyRun_File(),Py_CompileString(),PyCompilerFlags() и т.п.),

· функции для работы со встроенным интерпретатором и потоками(Py_Initialize(),

 



Поделиться:


Последнее изменение этой страницы: 2024-06-27; просмотров: 105; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.128 (0.007 с.)