Как Вы называете код Python из кода C?

Будьте осторожны при использовании

num% 1

пустая строка ('') или логическое значение (true или false) вернется как целое число. Возможно, вы не захотите делать это

false % 1 // true
'' % 1 //true

Number.isInteger (data)

Number.isInteger(22); //true
Number.isInteger(22.2); //false
Number.isInteger('22'); //false

встроенной функции в браузере. Dosnt поддерживает старые браузеры

Альтернативы:

Math.round(num)=== num

Однако Math.round () также не будет работать для пустой строки и логического значения

40
задан pgb 28 June 2009 в 23:51
поделиться

6 ответов

Я рекомендую подходы , подробно описанные здесь . Он начинается с объяснения того, как выполнять строки кода Python, а затем подробно описывается, как настроить среду Python для взаимодействия с вашей программой на C, вызова функций Python из кода C, управления объектами Python из кода C и т. Д.

РЕДАКТИРОВАТЬ : если вы действительно хотите пойти по пути IPC, тогда вы захотите использовать модуль структуры или еще лучше, protlib . Большая часть взаимодействия между процессами Python и C вращается вокруг передачи структур туда и обратно, либо через сокет , либо через разделяемую память .

Я рекомендую создать команду ] структура с полями и кодами для представления команд и их аргументов. Я могу'

13
ответ дан 27 November 2019 в 01:57
поделиться

См. Соответствующую главу в руководстве: http://docs.python.org/exnding/

По сути, вам нужно будет встроить интерпретатор python в свою программу.

5
ответ дан 27 November 2019 в 01:57
поделиться

Рассматривали ли вы возможность просто обернуть ваше приложение python в сценарий оболочки и вызвать его с помощью в вашем приложении C?

Не самое элегантное решение, но оно очень простое.

4
ответ дан 27 November 2019 в 01:57
поделиться

Я не использовал подход IPC для связи Python <-> C, но он должен работать довольно хорошо. Я бы хотел, чтобы программа на C выполняла стандартный fork-exec и использовала перенаправленные stdin и stdout в дочернем процессе для связи. Удобное текстовое общение упростит разработку и тестирование программы Python.

1
ответ дан 27 November 2019 в 01:57
поделиться

Если бы я решил использовать IPC, я бы, вероятно, пустил пыль в глаза XML-RPC - - кросс-платформенный, позволяет вам легко разместить проект сервера Python на другом узле позже, если вы хотите, имеет много отличных реализаций (см. здесь для многих, включая C и Python, и здесь для простого сервера XML-RPC, который является частью стандартной библиотеки Python - не такой масштабируемый, как другие подходы, но, вероятно, хорошо и удобно для вашего варианта использования).

1
ответ дан 27 November 2019 в 01:57
поделиться

очевидно Python должен иметь возможность компилировать в win32 dll, это решит проблему

Таким образом, преобразование кода C # в win32 dll сделает его пригодным для использования любым инструментом разработки

0
ответ дан 27 November 2019 в 01:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: