PyLong_FromLong(result[i])); free(result); 


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



ЗНАЕТЕ ЛИ ВЫ?

PyLong_FromLong(result[i])); free(result);

Поиск

PyLong_FromLong(result[i])); free(result);

 

}

 

return resultobj; fail:

 

return NULL;

}

 

В качестве упражнения,предлагается сопоставить это определение с файломfreq.iи понять,что происходит внутри функции _wrap_frequency().Подсказка:можно посмотреть еще раз комментарии кC-коду модуля md5.

 

Стоит еще раз напомнить,что в отличие отPython,в языкеC/C++управление памятью должно происходить в явном виде.Именно поэтому добавлена функция free() при преобразовании типа.Если этого не сделать,возникнут утечки памяти.Эти утечки можно обнаружить,при многократном выполнении функции:

 

>>> import freq

>>> for i in xrange(1000000):

... dummy = freq.frequency("ABCDEF")

 

>>>

 

Если функция freq.frequency() имеет утечки памяти,выполняемый процесс очень быстро займет всю имеющуюся память.

 

Интеграция Python и других систем программирования

 

Язык программированияPythonявляется сценарным языком,а значит его основное назначение-интеграция в единую систему разнородных программных компонентов.Выше рассматривалась(низкоуровневая)интеграция сC/C++-приложениями.Нужно заметить,что в большинстве случаев достаточно интеграции с использованием протокола.Например,интегрируемые приложения могут общаться черезXML-RPC, SOAP, CORBA, COM, .NETи т.п.В случаях,когда приложения имеют интерфейс командной строки,их можно вызывать изPython и управлять стандартным вводом-выводом, переменными окружения. Однако есть и более интересные варианты интеграции.


 

 


Современное состояние дел по излагаемому вопросу можно узнать по адресу:http://www.python.org/moin/IntegratingPythonWithOtherLanguages

 



Поделиться:


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

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