include "Python.h" #include "md5.h" 


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



ЗНАЕТЕ ЛИ ВЫ?

include "Python.h" #include "md5.h"

Поиск

Примечание

 

Под протоколом здесь понимается набор методов,которые должен поддерживать тот или иной класс для организации операций со своими экземплярами.Эти методы доступны не только изPython (например,len(a) дает длину последовательности),но и из кода наC

 

(PySequence_Length()).

 

Написание модуля расширения

 

Если необходимость встроитьPythonв программу возникает нечасто,то его расширение путем написания модулей наC/C++ -довольно распространенная практика.ИзначальноPython был нацелен на возможность расширения, поэтому в настоящий момент очень многиеC/C++-библиотеки имеют привязки кPython.

 

Привязка кPython,хотя и может быть несколько автоматизирована,все же это процесс творческий.Дело в том,что если предполагается интенсивно использовать библиотеку вPython, ее привязку желательно сделать как можно более тщательно. Возможно, в ходе привязки будет сделана объектно-ориентированная надстройка или другие архитектурные изменения,которые позволят упростить использование библиотеки.

 

В качестве примера можно привести выдержку из исходного кода модуля md5,который реализует функцию для полученияmd5-дайджеста.Модуль приводится в целях иллюстрации(то есть,с сокращениями).Модуль вводит собственный тип данных,MD5Type,поэтому можно увидеть не только реализацию функций,но и способ описания встроенного


 


типа.В рамках этого курса не изучить все тонкости программирования модулей расширения,главное понять дух этого занятия.На комментарии автора курса лекций указывает двойной слэш //:

 

// заголовочные файлы

// В частности, в заголовочном файле md5.h есть следующие

 

определения:

 

// typedef unsigned char *POINTER;

// typedef unsigned int UINT4;

// typedef struct {

 

//



Поделиться:


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

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