PythonµÄÄÚ´æÐ¹Â©¼°gcÄ£¿éµÄʹÓÃ
PythonµÄÄÚ´æÐ¹Â©¼°gcÄ£¿éµÄʹÓÃ
-- 6.11ÈÕ´íÎóÐÞÕý°æ
Horin|ºØÇÚ
Email: horin153@msn.com
Blog:
http://blog.csdn.net/horin153/
ÔÚ Python
ÖУ¬ÎªÁ˽â¾öÄÚ´æÐ¹Â©ÎÊÌ⣬²ÉÓÃÁ˶ÔÏóÒýÓüÆÊý£¬²¢»ùÓÚÒýÓüÆÊýʵÏÖ×Ô¶¯À¬»ø»ØÊÕ¡£
ÒòΪ Python
ÓÐÁË×Ô¶¯À¬»ø»ØÊÕ¹¦ÄÜ£¬²»ÉÙ³õѧÕß¾ÍÈÏΪ×Ô¼º´Ó´Ë¹ýÉÏÁ˺ÃÈÕ×Ó£¬²»±ØÔÙÊÜÄÚ´æÐ¹Â©µÄɧÈÅÁË¡£µ«Èç¹û²é¿´Ò»Ï Python Îĵµ¶Ô __del__()
º¯ÊýµÄÃèÊö£¬¾ÍÖªµÀºÃÈÕ×ÓÀïÒ²ÊÇÓÐÒõÔÆµÄ¡£ÏÂÃæÕª³Ò»µãÎĵµÄÚÈÝ£º
Some common situations that may
prevent the reference count of an object from going to zero include:
circular references between objects (e.g., a doubly-linked list or a
tree data structure with parent and child pointers); a reference to the
object on the stack frame of a function that caught an exception (the
traceback stored in sys.exc_traceback keeps the stack frame alive); or a
reference to the object on the stack frame that raised an unhandled
exception in interactive mode (the traceback stored in
sys.last_traceback keeps the stack frame alive).
¿É¼û£¬ÓÐ __del__()
º¯ÊýµÄ¶ÔÏó¼äµÄÑ»·ÒýÓÃÊǵ¼ÖÂÄÚ´æÐ¹Â©µÄÖ÷Ðס£Ìرð˵Ã÷£º¶ÔûÓÐ __del__() º¯ÊýµÄ Python
¶ÔÏó¼äµÄÑ»·ÒýÓã¬ÊÇ¿ÉÒÔ±»×Ô¶¯À¬»ø»ØÊÕµôµÄ¡£
ÈçºÎÖªµÀÒ»¸ö¶ÔÏóÊÇ·ñÄÚ´æÐ¹Â©ÁËÄØ£¿
·½·¨Ò»¡¢µ±ÄãÈÏΪһ¸ö¶ÔÏóÓ¦¸Ã±»Ïú»Ùʱ£¨¼´ÒýÓüÆÊýΪ 0£©£¬¿ÉÒÔͨ¹ý sys.getrefcount(obj)
À´»ñÈ¡¶ÔÏóµÄÒýÓüÆÊý£¬²¢¸ù¾Ý·µ»ØÖµÊÇ·ñΪ 0 À´ÅжÏÊÇ·ñÄÚ´æÐ¹Â©¡£Èç¹û·µ»ØµÄÒýÓüÆÊý²»Îª 0£¬ËµÃ÷Ôڴ˿̶ÔÏó obj
ÊDz»Äܱ»À¬»ø»ØÊÕÆ÷»ØÊÕµôµÄ¡£
·½·¨¶þ¡¢Ò²¿ÉÒÔͨ¹ý Python À©Õ¹Ä£¿é gc À´²é¿´²»ÄÜ»ØÊյĶÔÏóµÄÏêϸÐÅÏ¢¡£
Ê×ÏÈ£¬À´¿´Ò»¶ÎÕý³£µÄ²âÊÔ´úÂ룺
#--------------- code begin --------------
#
-*- coding: utf-8 -
Ïà¹ØÎĵµ£º
1 ÔÚÏëÒª²åÈë¶ÏµãµÄµØ·½²åÈë´úÂë
import pdb
pdb.set_trace()
2È»ºóʹÓÃÖ¸Áî½øÐÐdebug
²é¿´´úÂëÉÏÏÂÎÄ£¬l£¨Ð¡Ð´L£©
¼àÊÓ±äÁ¿ ......
1.cµ÷ÓÃpython:
ʵÀý´úÂ룺
main.cµ÷ÓÃtest.pyµÄ
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
//main.c
#include <windows.h>
......
ÏеÄÎÞÁľͿ´ÁËÒ»µã¹ØÓÚpythonµÄ»ù´¡ÖªÊ¶£¬µ±Ê±Ò²²»ÖªµÀpythonºÍperlÖ®¼äÕùÂÛµÄÕâôµÄ¼¤ÁÒ£¨Ö÷ÒªÊǵ±Ê±²»ÖªµÀperlÕâ¸öÓïÑÔµÄÐÔÖÊ),ËùÒÔÖ±½Ó¾Í¿´ÁËpython£¬ÏÂÃæÊÇÎҵĵÚÒ»¸öÓÃpythonдµÄС³ÌÐòÔ´Â룬ϣÍûÅóÓÑÃǶà¶àÖ¸½Ì£¬ÓÐʲôÎÊÌâ´ó¼Ò¾¡¹ÜÖ¸Õý£¬ÔÚ´ËÏÈлл´ó¼ÒÁË¡£
[code]
#!/usr/bin/python
import sys, os, re
impor ......
python µÄÄÚǶtimeÄ£°å·Ò뼰˵Ã÷
Ò»¡¢¼ò½é
timeÄ£¿éÌṩ¸÷ÖÖ²Ù×÷ʱ¼äµÄº¯Êý
˵Ã÷£ºÒ»°ãÓÐÁ½ÖÖ±íʾʱ¼äµÄ·½Ê½:
µÚÒ»ÖÖÊÇʱ¼ä´ÁµÄ·½Ê½(Ïà¶ÔÓÚ1970.1.1 00:00:00ÒÔÃë¼ÆËãµÄÆ«ÒÆÁ¿),ʱ¼ä´ÁÊÇΩһµÄ
µÚ¶þÖÖÒÔÊý×éµÄÐÎʽ±íʾ¼´(struct_time),¹²ÓоŸöÔªËØ£¬·Ö±ð±íʾ£¬Í¬Ò»¸öʱ¼ä´ÁµÄstruct_time»áÒòÎªÊ±Çø²»Í¬¶ø²»Í¬
year ......
Ò»¡¢Ê¹ÓÃPythonÐèÒªÖªµÀµÄ
ÔÚ Windows ÉÏ£¬°²×° Python ÓÐÁ½ÖÖÑ¡Ôñ¡£
1¡¢ActiveState ÖÆ×÷µÄ ActivePython ÊÇרÃÅÕë¶Ô Windows µÄ Python Ì×¼þ£¬Ëü°üº¬ÁËÒ»¸öÍêÕûµÄ Python ·¢²¼¡¢Ò»¸öÊÊÓÃÓÚPython ±à³ÌµÄ IDE ÒÔ¼°Ò»Ð© PythonµÄ Windows À©Õ¹£¬ÌṩÁËÈ«²¿µÄ·ÃÎÊ Windows APIs µÄ·þÎñ£¬ÒÔ¼° Windows×¢²á±íµÄ×¢²áÐÅÏ¢¡£ËäÈ ......