pythonÖÐeval, exec, execfile,ºÍcompile
eval(str [,globals [,locals ]])º¯Êý½«×Ö·û´®strµ±³ÉÓÐЧPython±í´ïʽÀ´ÇóÖµ£¬²¢·µ»Ø¼ÆËã½á¹û¡£
ͬÑùµØ, execÓï¾ä½«×Ö·û´®strµ±³ÉÓÐЧPython´úÂëÀ´Ö´ÐÐ.Ìṩ¸øexecµÄ´úÂëµÄÃû³Æ¿Õ¼äºÍexecÓï¾äµÄÃû³Æ¿Õ¼äÏàͬ.
×îºó£¬execfile(filename [,globals [,locals ]])º¯Êý¿ÉÒÔÓÃÀ´Ö´ÐÐÒ»¸öÎļþ,¿´ÏÂÃæµÄÀý×Ó:
>>> eval('3+4')
7
>>> exec 'a=100'
>>> a
100
>>> execfile(r'c:\test.py')
hello,world!
>>>
ĬÈϵģ¬eval(),exec,execfile()ËùÔËÐеĴúÂ붼λÓÚµ±Ç°µÄÃû×Ö¿Õ¼äÖÐ. eval(), exec,ºÍ execfile()º¯ÊýÒ²¿ÉÒÔ½ÓÊÜÒ»¸ö»òÁ½¸ö¿ÉÑ¡×Öµä²ÎÊý×÷Ϊ´úÂëÖ´ÐеÄÈ«¾ÖÃû×Ö¿Õ¼äºÍ¾Ö²¿Ãû×Ö¿Õ¼ä. ÀýÈç:
1 globals = {'x': 7,
2 'y': 10,
3 'birds': ['Parrot', 'Swallow', 'Albatross']
4 }
5 locals = { }
6
7 # ½«ÉϱߵÄ×Öµä×÷Ϊȫ¾ÖºÍ¾Ö²¿Ãû³Æ¿Õ¼ä
8 a = eval("3*x + 4*y", globals, locals)
9 exec "for b in birds: print b" in globals, locals # ×¢ÒâÕâÀïµÄÓï·¨
10 execfile("foo.py", globals, locals)
Èç¹ûÄãÊ¡ÂÔÁËÒ»¸ö»òÕßÁ½¸öÃû³Æ¿Õ¼ä²ÎÊý,ÄÇôµ±Ç°µÄÈ«¾ÖºÍ¾Ö²¿Ãû³Æ¿Õ¼ä¾Í±»Ê¹ÓÃ.Èç¹ûÒ»¸öº¯ÊýÌåÄÚǶǶÌ׺¯Êý»òlambdaÄäÃûº¯Êýʱ,ͬʱÓÖÔÚº¯ÊýÖ÷ÌåÖÐʹÓÃexec»òexecfile()º¯Êýʱ£¬ ÓÉÓÚÇ£µ½Ç¶Ì××÷ÓÃÓò£¬»áÒý·¢Ò»¸öSyntaxErrorÒì³£.£¨´Ë¶ÎÔÎÄ:If you omit one or both namespaces, the current values of the global and local namespaces are used. Also,due to issues related to nested scopes, the use of exec or execfile() inside a function body may result in a SyntaxError exception if that function also contains nested function definitions or uses the lambda operator.£©
ÔÚPython2.4Öа³Î´·¢ÏÖ¿ÉÒÔÒýÆðÒì³£
×¢ÒâÀý×ÓÖÐexecÓï¾äµÄÓ÷¨ºÍeval(), execfile()ÊDz»Ò»ÑùµÄ. execÊÇÒ»¸öÓï¾ä(¾ÍÏóprint»òwhile), ¶øeval()ºÍexecfile()ÔòÊÇÄÚ½¨º¯Êý.
exec(str) ÕâÖÖÐÎʽҲ±»½ÓÊÜ£¬µ«ÊÇËüûÓзµ»ØÖµ¡£
µ±Ò»¸ö×Ö·û´®±»exec,eval(),»òexecfile()Ö´ÐÐʱ,½âÊÍÆ÷»áÏȽ«ËüÃDZàÒëΪ×Ö½Ú´úÂ룬ȻºóÔÙÖ´ÐÐ.Õâ¸ö¹ý³Ì±È½ÏºÄʱ,ËùÒÔÈç¹ûÐèÒª¶Ôij¶Î´úÂëÖ´Ðкܶà´Îʱ,×îºÃ»¹ÊǶԸôúÂëÏȽøÐÐÔ¤±àÒë,ÕâÑù¾Í²»ÐèҪÿ´Î¶¼±àÒëÒ»±é´úÂ룬¿ÉÒÔÓÐЧÌá¸ß³ÌÐòµÄÖ´ÐÐЧÂÊ¡£
compile(str ,filename ,kind )º¯Êý½«Ò»¸ö×Ö·û´®±àÒëΪ×Ö½Ú´úÂë, str
Ïà¹ØÎĵµ£º
È«ÎÄÀ´×Ô£ºIT¹¤³Ì¼¼ÊõÍø http://www.systhinker.com/html/91/n-11591.html
×òÌìºÍ·ÉÌìÎèÕßÌÖÂÛ¾²Ì¬ÀàÐÍÓïÑԺͶ¯Ì¬ÀàÐÍÓïÑÔÓÅÁӱȽϵÄʱºò£¬Ëµµ½PythonûÓÐÖØÔØ»úÖƵÄÎÊÌâ¡£
ºóÀ´ÏëÏëͦÓÐÒâ˼µÄ£¬°Ñ˼¿¼µÄ¾¹ý¼Ç¼ÏÂÀ´£¬»¶ÓÅÄש¡£
ÖØÔØ£¨overload£©ºÍ¸²¸Ç£¨override£©£¬ÔÚC++£¬Java£¬C#µÈ¾²Ì¬ÀàÐÍÓïÑÔÀàÐÍÓïÑÔÖУ¬ÕâÁ½¸ö ......
£¨Ò»£© py2exe¼ò½é
py2exeÊÇÒ»¸ö½«python½Å±¾×ª»»³ÉwindowsÉϵĿɶÀÁ¢Ö´ÐеĿÉÖ´ÐгÌÐò(*.exe)µÄ¹¤¾ß£¬ÕâÑù£¬Äã¾Í¿ÉÒÔ²»ÓÃ×°python¶øÔÚ
windowsϵͳÉÏÔËÐÐÕâ¸ö¿ÉÖ´ÐгÌÐò¡£
¡¡¡¡
¡¡¡¡py2exeÒѾ±»ÓÃÓÚ´´½¨
wxPython,Tkinter,Pmw,PyGTK,pygame,win32com
clientºÍserver,ºÍÆäËüµÄ¶ÀÁ¢³ ......
PythonÓëMysql
Ò»¡¢°²×°MySQLdbÄ£¿é
ʹÓÃpythonÁ¬½ÓMysqlµÄÇ°Ìᣬ¾ÍÊÇÐèÒªÒ»¸öÈÃpythonÁ¬½Óµ½MysqlµÄ½Ó¿Ú£¬Õâ¾ÍÊÇMySQLdbÄ£¿é¡£
ÑéÖ¤ÊÇ·ñÒѾ°²×°ÁËMySQLdb£º
==========================================================
d:\usr\local\Python25>python
Python 2.5.4 (r254:67916, Dec 23 2008, 15:10:54) [MSC v ......
ÔÚÉÏһƪÖÐÎÒÃÇÒѾʹÓÃcÓïÑÔʵÏÖÁËÒ»¸ö×î¼òµ¥µÄÀ©Õ¹Ä£¿é£¬ÕâһƪÖн«ÔÚÆä»ù´¡ÉϽøÐй¦Äܵķḻ¡£Ê×ÏÈÀ´¿¼ÂÇÈçºÎ´ÓÍⲿµÄPythonÏòCÄ£¿é´«µÝ½ø²ÎÊý£¬foo_bar2չʾÁËÈçºÎÏòCÄ£¿é´«µÝÕûÊý£¬¸¡µãÊý£¬×Ö·û´®Èý¸ö²ÎÊý£¬ÆäÖÐ"ids"Ö¸Ã÷ÁË´«Èë²ÎÊýµÄÊý¾ÝÀàÐÍ¡£PyArg_ParseTuple¸ºÔð¶Ôargs½øÐнâÎö£¬Èô½âÎöʧ°ÜÔò·µ»Ø0.´úÂë#include&n ......
Python¼òµ¥ÓÖ¹¦ÄÜÇ¿´ó¡£Ëü×¢ÖصÄÊÇÈçºÎ½â¾öÎÊÌ⣬¶ø²»ÊDZà³ÌÓïÑÔµÄÓï·¨ºÍ½á¹¹¡£ÀíÏëµÄ½Å±¾ÓïÑÔ¡£ÊÊÓÃÓÚ¿ìËÙµÄÓ¦ÓóÌÐò¿ª·¢¡£
PythonÊÇÒ»ÖÖ½âÊÍÐÔÓïÑÔ¡£»¹ÊÇÒ»ÖÖÃæÏò¶ÔÏóµÄÓïÑÔ¡£
ÓÐÁ½ÖÖʹÓÃpythonÔËÐÐÄãµÄ³ÌÐòµÄ·½Ê½£º
ʹÓý»»¥Ê½µÄ´øÌáʾ·ûµÄ½âÊÍÆ÷
ʹ ......