Python±Ê¼Ç£¨¶þ£©——pythonµ÷ÓÃC/C++Ä£¿é
ǰһƪ½²Á˼òµ¥µÄC/C++µ÷ÓÃPython½Å±¾Ä£¿é£¨.py£©¡£¼ÈÈ»ÊÇÓÃÓÚÖî¶àÓÎÏ·³ÌÐòµÄ½Å±¾ÓïÑÔ£¬Äǿ϶¨ÊÇȱ²»ÁË»¥µ÷£¨ÀñÉÐÍùÀ´£©¡£Òò´Ë£¬±¾Æª½²Ò»¸ö¼òµ¥µÄpythonµ÷ÓÃC/C++дµÄDLLÄ£¿é£¬¶ÔPython½øÐй¦ÄÜÀ©Õ¹¡£ÕâÀïдһ¸ö¼òµ¥µÄÀý×Ó£¬Ö÷Òª¾ÍΪÁËÁ˽âÏÂÕâôÓÃPythonÀ´µ÷ÓÃC/C++дµÄDLL¿â¡£ºÃÁË£¬ÇÐÈëÕýÌ⣺
Ê×ÏÈ£¬ÎÒÊÇÓÃVS2003½¨µÄÒ»¸öDLL¹¤³Ì£¬½«DLL¹¤³ÌÊôÐÔÀïÃæµÄÊä³öÎļþµÄ(.dll)¸ÄΪ(.pyd)¡£µ±È»Ò²¿ÉÒÔ½«Éú³ÉºóµÄDLLÀ©Õ¹Ãû¸ÄΪ.pyd¡£ºÇºÇ£¡ÃâµÃ´ó¼ÒÒÔΪËüºÜÉñÃØ£¨VC»¹ÄÜÉú³É.pyd¿â£¿ÕâÖÖÒÉÎÊ£¡£©ºÃ£¬Ö±½ÓÌù´úÂë:
#include <Python.h>
int cmd( const char *arg )
{
int n = system( arg );
return n;
}
static PyObject * wrap_cmd_fun( PyObject *self, PyObject *args )
{
const char * command;
if ( !PyArg_ParseTuple( args, "s", &command ) )
return NULL;
int n = cmd( command );
return Py_BuildValue( "i", n );
}
static PyMethodDef MyCppMethods[] =
{
{ "MyCppFunc", wrap_cmd_fun, METH_VARARGS, "Execute a shell command." },
{ NULL, NULL, 0, NULL }
};
PyMODINIT_FUNC initMyFirstPythonModule( void )
{
PyObject *m = Py_InitModule( "MyFirstPythonModule", MyCppMethods );
if (m == NULL)
return;
}
Õâ¸öʵÀýºÜ¼òµ¥£¬Ê×ÏÈÊÇPy_InitModuleÓÃÓÚ³õʼ»¯ÔÚPython½Å±¾ÖÐÒªimportµÄÄ£¿é£¬ÕâÀïµÄÄ£¿éÃûÊÇ£ºMyFirstPythonModule¡£ÎÒÃÇÔÚPythonÖн«Ê¹ÓÃimport MyFirstPythonModule À´ÔØÈëÕâ¸öÄ£¿é¡£ÕâÀïÎÒÃǽ«MyCppMethods×÷Ϊģ¿éÒªµ÷Óõķ½·¨£¬ËüÊÇÒ»¸öPyMethodDef½á¹¹¡£ÎÒÃÇ¿ÉÒÔ¿´µ½Õâ¸ö½á¹¹µÄÊý×鶨Ò壬{ "MyCppFunc", wrap_cmd_fun, METH_VARARGS, "Execute a shell command." }, ºìÉ«µÄ¾ÍÊÇÎÒÃÇÔڽű¾ÀïÃæÒªµ÷Óõĺ¯ÊýÃû×Ö£¬Ëü±»Ó³ÉäΪwrap_cmd_fun£¬µ±ÔÚPython½Å±¾Öе÷ÓÃMyCppFuncʱ½«»áµ÷ÓÃwrap_cmd_funº¯Êý¡£µÚÈý¸öMETH_VARARGS³ÉÔ±±íʾµ÷Ó÷½Ê½£¬¿ÉÒÔÓûòÔËËãÁ¬½Ó¼¸¸öµ÷Ó÷½Ê½¡£µÚËĸö³ÉÔ±ÊÇÒ»¸ö·½·¨
Ïà¹ØÎĵµ£º
PS:
½ñÌìÈ¥¸£ê¿²Î¼ÓËûÃǹ«Ë¾µÄ±ÊÊÔÁË£¬¿¼µÄ²»ÊǺÜˬ¡£¡£¡£¡£¡£Ò»Ð©ºÜ¼òµ¥µÄ¸ÅÄîÌ⣬²»ÖªµÀÔõô×÷´ð£¬¿´À´Òª¶à¶à¹®¹ÌÏÂÀíÂÛ֪ʶÀ²£¡£¡£¡£¡£¡£¡
ÒÔÏÂת:
ÎÒ´Óʼ¼Êõ¹¤×÷£¬
Õ⼸ÄêµÄÃæÊÔÓë±»ÃæÊÔ×ܽá
ÏÈ˵ÎÒÈ¥±»ÃæÊԵľÑé°É¡£
»Ø´ðÇå³þÁË2¸öÎÊÌ⣬¾ÍÄÜ˳Àû¹ý¹ØÁË¡£
1¡£ÎªÊ²Ã´ÒªÀ뿪ÉÏÒ ......
3.ÄÚ¹¦Ìâ
¡¡¡¡ÊÔÌâ1£º·Ö±ð¸ø³öBOOL£¬int£¬float£¬Ö¸Õë±äÁ¿ Óë“ÁãÖµ”±È½ÏµÄ if Óï¾ä£¨¼ÙÉè±äÁ¿ÃûΪvar£©
¡¡¡¡½â´ð£º
¡¡¡¡¡¡BOOLÐͱäÁ¿£ºif(!var)
¡¡¡¡¡¡intÐͱäÁ¿£º if(var==0)
¡¡¡¡¡¡floatÐͱäÁ¿£º
¡¡¡¡¡¡const float EPSINON = 0.00001;
¡¡¡¡¡¡if ((x >= - EPSINON) && (x <= EPSI ......
ת×Ô http://hi.baidu.com/xunxun129/blog/item/3befad0f8ff992c07bcbe180.html
ÓÐʱÎÒÃÇÐèÒªÔÚ Python
ÖÐʹÓà zip Îļþ£¬¶øÔÚ1.6°æÖУ¬Python ¾ÍÒѾÌṩÁË zipfile Ä£¿é¿ÉÒÔ½øÐÐÕâÑùµÄ²Ù×÷¡£²»¹ý Python ÖеÄ
zipfile Ä£¿é²»ÄÜ´¦Àí¶à¾íµÄÇé¿ö£¬²»¹ýÕâÖÖÇé¿ö²¢²»¶à¼û£¬Òò´ËÔÚͨ³£Çé¿öÏÂÒѾ×㹻ʹÓÃÁË¡£ÏÂÃæÎÒÖ»Ê ......
---- ÔÚÊý¾Ý¿âµÄÓ¦Óÿª·¢ÖУ¬³£³£»áÓöµ½ÐÔÄܺʹú¼ÛµÄÖ®¼äì¶Ü¡£ÒÔ×÷ÕßÔÚ¿ª·¢¹ÉÊÐÐÐ
Çé²éѯºÍ½»Ò×ϵͳÖÐÓöµ½µÄÎÊÌâΪÀý£¬ÒªÔÚʵʱ¼Ç¼1000¶àÖ»¹ÉƱÿ·ÖÖÓ¸üÐÂÒ»´ÎµÄÐÐ
ÇéÊý¾ÝµÄͬʱ£¬ÏìÓ¦´óÁ¿²¢·¢Óû§µÄÊý¾Ý²éѯÇëÇ󡣿¼Âǵ½ÐԼ۱ȺÍÒ×ά»¤ÐÔ£¬ÏµÍ³ÓÖ
ÒªÇóÔÚ»ùÓÚPC·þÎñÆ÷£¬Windows NTƽ̨µÄÈíÓ²¼þ»·¾³ÏÂʵÏÖ¡£¿ª ......
C++ÓëJavaµÄÓï·¨Çø±ð
Ê×ÏÈ£¬Á½¸ö´óµÄ²»Í¬ÊÇÖ÷º¯ÊýºÍÔõÑù±àÒëµÄ²»Í¬£¬½ÓÏÂÀ´ÊÇÐí¶àСµÄÇø±ð¡£
main º¯Êý
C++
//×ÔÓɸ¡¶¯µÄº¯Êý
int main( int argc, char* argv[])
{
printf( "Hello, world" );
}
Java
// ÿ¸öº¯Êý¶¼±ØÐëÊÇÒ»¸öÀàµÄÒ»²¿·Ö;µ±java <class>ÔËÐÐÊÇÒ»¸öÌØ¶¨ÀàµÄÖ÷º¯Êý»á±»µ÷ ......