Как можно заключить из предшествующего обзора, встраивание предоставляет большую гибкость. Чтобы проиллюстрировать стандартные приемы встраивания в действии, в этом разделе представлен ряд коротких программ на языке C, которые тем или иным способом выполняют программный код Python. Большинство этих примеров используют простой файл модуля Python, представленный в примере 20.22.
Пример 20.22. PP4E\Integrate\Embed\Basics\usermod.py
####################################################################### Программы на C будут выполнять программный код в этом модуле Python в режиме встраивания. Этот файл может изменяться без необходимости изменять слой C. Это обычный, стандартный программный код Python (преобразования выполняются программой на C). Должен находиться в пути поиска модулей Python. Программы на C могут также выполнять программный код модулей из стандартной библиотеки, таких как string.
#######################################################################
message = ‘The meaning of life…’
def transform(input):
input = input.replace(‘life’, ‘Python’) return input.upper()
Если вы хотя бы минимально знакомы с языком Python, то заметите, что этот файл определяет строку и функцию. Функция возвращает переданную ей строку после выполнения замены в строке и перевода всех символов в ней в верхний регистр. Из Python пользоваться модулем просто:
…/PP4E/Integrate/Embed/Basics$ python
# >> import usermod # импортировать модуль
# >> usermod.message # извлечь строку
‘The meaning of life…’
# >> usermod.transform(usermod.message) # вызвать функцию
‘THE MEANING OF PYTHON…’
При надлежащем использовании API ненамного сложнее использовать этот модуль в C.
Использованная литература:
Марк Лутц — Программирование на Python, 4-е издание, II том, 2011