Как правило, функция, написанная на C, будет значительно быстрее, чем эквивалент Python. Также гораздо сложнее интегрировать, так как это включает в себя:
- компиляция кода C, который # включает заголовки Python и предоставляет соответствующий код-обертку, чтобы его можно было вызывать из Python;
- ссылки на правильные библиотеки Python;
- развертывание получившейся общей библиотеки в соответствующем месте, чтобы ваш код Python мог ее импортировать.
Вы хотели бы быть очень уверены, что преимущества перевешивают затраты, прежде чем пытаться сделать это, а это означает, что это должно быть зарезервировано только для критичных для производительности разделов вашего кода, которые вы просто не можете сделать достаточно быстро с чистым Python. *
Если вам действительно нужно пойти по этому пути, Boost.Python может сделать задачу намного менее болезненной.