Будьте осторожны при использовании
num% 1
пустая строка ('') или логическое значение (true или false) вернется как целое число. Возможно, вы не захотите делать это
false % 1 // true
'' % 1 //true
Number.isInteger(22); //true
Number.isInteger(22.2); //false
Number.isInteger('22'); //false
встроенной функции в браузере. Dosnt поддерживает старые браузеры
Альтернативы:
Math.round(num)=== num
Однако Math.round () также не будет работать для пустой строки и логического значения
Я рекомендую подходы , подробно описанные здесь . Он начинается с объяснения того, как выполнять строки кода Python, а затем подробно описывается, как настроить среду Python для взаимодействия с вашей программой на C, вызова функций Python из кода C, управления объектами Python из кода C и т. Д.
РЕДАКТИРОВАТЬ : если вы действительно хотите пойти по пути IPC, тогда вы захотите использовать модуль структуры или еще лучше, protlib . Большая часть взаимодействия между процессами Python и C вращается вокруг передачи структур туда и обратно, либо через сокет , либо через разделяемую память .
Я рекомендую создать команду
] структура с полями и кодами для представления команд и их аргументов. Я могу'
См. Соответствующую главу в руководстве: http://docs.python.org/exnding/
По сути, вам нужно будет встроить интерпретатор python в свою программу.
Рассматривали ли вы возможность просто обернуть ваше приложение python в сценарий оболочки и вызвать его с помощью в вашем приложении C?
Не самое элегантное решение, но оно очень простое.
Я не использовал подход IPC для связи Python <-> C, но он должен работать довольно хорошо. Я бы хотел, чтобы программа на C выполняла стандартный fork-exec и использовала перенаправленные stdin
и stdout
в дочернем процессе для связи. Удобное текстовое общение упростит разработку и тестирование программы Python.
Если бы я решил использовать IPC, я бы, вероятно, пустил пыль в глаза XML-RPC - - кросс-платформенный, позволяет вам легко разместить проект сервера Python на другом узле позже, если вы хотите, имеет много отличных реализаций (см. здесь для многих, включая C и Python, и здесь для простого сервера XML-RPC, который является частью стандартной библиотеки Python - не такой масштабируемый, как другие подходы, но, вероятно, хорошо и удобно для вашего варианта использования).
очевидно Python должен иметь возможность компилировать в win32 dll, это решит проблему
Таким образом, преобразование кода C # в win32 dll сделает его пригодным для использования любым инструментом разработки