Python±ê×¼¿âµÄthreading.ThreadÀà
Õâ¸öÀà±íʾÔÚµ¥¶ÀµÄ¿ØÖÆÏß³ÌÖÐÔËÐеĻ¡£ÓÐÁ½ÖÖ·½·¨¿ÉÒÔÖ¸¶¨ÕâÖֻ£¬¸ø¹¹Ô캯Êý´«µÝ»Øµ÷¶ÔÏ󣬻òÕßÔÚ×ÓÀàÖÐÖØÐ´run() ·½·¨¡£ÆäËû·½·¨£¨³ýÁ˹¹Ô캯Êý)¶¼²»Ó¦ÔÚ×ÓÀàÖб»ÖØÐ´¡£»»¾ä»°Ëµ£¬ÔÚ×ÓÀàÖÐÖ»ÓÐ__init__()ºÍrun()·½·¨±»ÖØÐ´¡£
Ò»µ©Ï̶߳ÔÏó±»´´½¨£¬ËüµÄ»î¶¯ÐèҪͨ¹ýµ÷ÓÃÏ̵߳Ästart()·½·¨À´Æô¶¯¡£Õâ·½·¨ÔÙµ÷ÓÿØÖÆÏß³ÌÖеÄrun·½·¨¡£
Ò»µ©Ï̱߳»¼¤»î£¬ÔòÕâÏ̱߳»ÈÏΪÊÇ'alive'(»î¶¯)¡£µ±ËüµÄrun()·½·¨ÖÕֹʱ-Õý³£Í˳ö»òÅ׳öδ´¦ÀíµÄÒì³££¬Ôò»î¶¯×´Ì¬Í£Ö¹¡£isAlive()·½·¨²âÊÔÏß³ÌÊÇ·ñÊǻµÄ¡£
Ò»¸öÏß³ÌÄܵ÷ÓñðµÄÏ̵߳Äjoin()·½·¨¡£Õ⽫×èÈûµ÷ÓÃỊ̈߳¬Ö±µ½ÓµÓÐjoin()·½·¨µÄÏ̵߳ĵ÷ÓÃÖÕÖ¹¡£
Ïß³ÌÓÐÃû×Ö¡£Ãû×ÖÄÜ´«¸ø¹¹Ô캯Êý£¬Í¨¹ýsetName()·½·¨ÉèÖã¬ÓÃgetName()·½·¨»ñÈ¡¡£
Ïß³ÌÄܱ»±êʶΪ'daemon thread'(ÊØ»¤Ïß³Ì).Õâ±êÖ¾µÄÌØµãÊǵ±Ê£ÏµÄÈ«ÊÇÊØ»¤Ïß³Ìʱ£¬ÔòPython³ÌÐòÍ˳ö¡£ËüµÄ³õʼֵ¼Ì³ÐÓÚ´´½¨Ï̡߳£Õâ±êÖ¾ÓÃsetDaemon()·½·¨ÉèÖã¬ÓÃisDaemon()»ñÈ¡¡£
´æÔÚ'main thread'(Ö÷Ïß³Ì),Ëü¶ÔÓ¦ÓÚPython³ÌÐòµÄ³õʼ¿ØÖÆÏ̡߳£Ëü²»ÊǺǫ́Ï̡߳£
ÓпÉÄÜ´æÔÚ'dummy thread objects'(ÑÆÏ̶߳ÔÏó)±»´´½¨¡£ÕâЩÏ̶߳ÔÓ¦ÓÚ'alien threads'(ÍⲿÏß³Ì),ËüÃÇÔÚPythonµÄÏß³ÌÄ£ÐÍÖ®Íâ±»Æô¶¯£¬ÏñÖ±½Ó´ÓCÓïÑÔ´úÂëÖÐÆô¶¯¡£ÑÆÏ̶߳ÔÏóÖ»ÓÐÓÐÏ޵ŦÄÜ£¬ËüÃÇ×ÜÊDZ»ÈÏΪÊǻµÄ£¬ÊØ»¤Ị̈߳¬²»ÄÜʹÓÃjoin()·½·¨¡£ËüÃÇ´Ó²»Äܱ»É¾³ý£¬¼ÈÈ»ËüÎÞ·¨¼à²âµ½ÍⲿÏ̵߳ÄÖÐÖ¹¡£
class Thread(group=None, target=None, name=None, args=(), kwargs={})
¹¹Ô캯ÊýÄÜ´øÓйؼü×Ö²ÎÊý±»µ÷Óá£ÕâЩ²ÎÊýÊÇ:
group Ó¦µ±Îª None£¬Îª½«À´ÊµÏÖThreadGroupÀàµÄÀ©Õ¹¶ø±£Áô¡£
target ÊDZ» run()·½·¨µ÷ÓõĻص÷¶ÔÏó. ĬÈÏӦΪNone, Òâζ×ÅûÓжÔÏó±»µ÷Óá£
name ΪÏß³ÌÃû×Ö¡£Ä¬ÈÏ£¬ÐÎʽΪ'Thread-N'µÄΨһµÄÃû×Ö±»´´½¨£¬ÆäÖÐN ÊDZȽÏСµÄÊ®½øÖÆÊý¡£
argsÊÇÄ¿±êµ÷ÓòÎÊýµÄtuple£¬Ä¬ÈÏΪ()¡£
kwargsÊÇÄ¿±êµ÷ÓõIJÎÊýµÄ¹Ø¼ü×Ödictionary£¬Ä¬ÈÏΪ{}¡£
Èç¹û×ÓÏß³ÌÖØÐ´Á˹¹Ô캯Êý£¬ËüÓ¦±£Ö¤µ÷ÓûùÀàµÄ¹¹Ô캯Êý(Thread.__init__())£¬ÔÚÏß³ÌÖнøÐÐÆäËû¹¤×÷֮ǰ¡£
start() Æô¶¯Ï̻߳¡£
ÔÚÿ¸öÏ̶߳ÔÏóÖÐ×î¶à±»µ÷ÓÃÒ»´Î¡£Ëü°²ÅŶÔÏóµÄrun() ±»µ÷ÓÃÔÚÒ»µ¥¶ÀµÄ¿ØÖÆÏß³ÌÖС£
run()
ÓÃÒÔ±íʾÏ̻߳µÄ·½·¨¡£
Äã¿ÉÄÜÔÚ×ÓÀàÖØÐ´Õâ·½·¨¡£±ê×¼µÄ run()·½·¨µ÷ÓÃ×÷Ϊtarget´«µÝ¸ø¶ÔÏó¹¹Ô캯ÊýµÄ»Øµ÷¶ÔÏó¡£Èç¹û´æÔÚ²ÎÊý£¬Ò»ÏµÁйؼü×Ö²ÎÊý´ÓargsºÍkwargs²ÎÊýÏàÓ¦µØÆð×÷Óá£
join([
Ïà¹ØÎĵµ£º
ÎÊÌâÃèÊö£º¼ÙÉèÎÒÓÐÕâÑùÁ½¸ölist£¬
Ò»¸öÊÇlist1£¬list1 = [1, 2, 3, 4, 5]
Ò»¸öÊÇlist2£¬list2 = [1, 4, 5]
ÎÒÃÇÈçºÎµÃµ½Ò»¸öеÄlist£ ......
myDict = { 'item1' : [ 7, 1, 9], 'item2' : [8, 2, 3], 'item3' : [ 9, 3, 11 ] }
def sortDic(Dict,valuePostion):
return sorted(Dict.items(),key=lambda e:e[1][valuePostion])
//°´valueµÄµÚ3¸öÖµÅÅÐò
sortDic(myDict,2)
[('item2', [8, 2, 3]), ('item1', [7, 1, 9]), ('item3', [9, 3, 11])]
//°´valueµÄµÚ ......
³õѧPython£¬Õâô×öºÃÏñÓеã2£¬´ÕºÏÄÜÓãº
class MyClass():
def __init__(self, n = 10):
self._Field = n
def __getitem__(self, range):
return MyClass(self._Field)
obj1 = MyClass()
obj2 = obj1
obj3 = obj1[:]
obj1._Field = 100
obj4 = MyClass(123)
print obj1._Field, obj2. ......
osÄ£¿éÌṩÁ˶àÊý²Ù×÷ϵͳµÄ¹¦Äܽӿں¯Êý.µ±osÄ£¿é±»µ¼Èëºó,Ëü»á×ÔÊÊÓ¦ÓÚ²»Í¬µÄ²Ù×÷ϵͳƽ̨,Èçposix»òNTϵͳƽ̨,osÄ£¿é»á¸ù¾Ý²»Í¬µÄƽ̨½øÐÐÏàÓ¦µÄ²Ù×÷.±¾½ÚÄÚÈݽ«¶ÔosÄ£¿éÌṩµÄº¯Êý½øÐÐÏêϸµÄ½â¶Á.
1.1 Îļþ²Ù×÷º¯Êý
1.1.1 open()º¯ÊýÌṩ´´½¨¡¢´ò¿ª¡¢ÐÞ¸ÄÎļþµÄ¹¦ÄÜ¡£
Example 1-1. Using the os Module to Rename ......
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 ......