Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

PythonºÍSingleton £¨µ¥¼þ£©Ä£Ê½

ÎÒÖªµÀµÄÒ»ÖÖÔÚ
python
ÖÐ
Singleton mode
µÄʵÏÖÈçÏ£º
class Foo: pass
def
instance():
   
global inst
   
try:
       
inst
   
except:
       
inst =
Foo
()
   
return inst
¸ÃʵÏÖµÄÓŵã¾ÍÊǼòµ¥ºÍÖ±¹Û£¬µ«È±µãҲͬÑùÃ÷ÏÔ£º
ÐèÒª¿Í»§´úÂëÏÔʽ֪µÀÒ»¸ö½Ð
instance()
µÄ·½·¨À´´´½¨¸ÃÀàµÄ¶ÔÏó£»
ÔÚ²¢·¢»·¾³ÏÂÕâÖÖʵÏÖ²¢²»¿É¿¿£»
 
µÚ
2
µãÊÇÏ൱ÑÏÖØµÄÒ»¸öȱÏÝ£¬Èç¹ûÄãÓÃÁËÉÏÃæµÄ´úÂ룬ÄÇÖ»ÄÜÆíµ»²»ÒªÓÐ
1
¸öÒÔÉϵÄʵÀý³öÏÖ£¨ËäÈ»¼¸Âʽϵͣ¬µ«»¹ÊÇÓпÉÄÜ£©£¬·ñÔò¾Í»á³öÏÖÏ¡Ææ¹Å¹ÖµÄÎÊÌâ¡£
Ò»¸öÉÔ΢ºÃЩʵÏÖÈçÏ£º
class
Singleton(object):   
   
objs 
= {}
   
def __new__(cls, *args, **kv):
       
if cls in cls.objs:
           
return cls.objs[cls]
       
cls.objs[cls] = object.__new__(cls)
Õâ¸öʵÏÖ½â¾öÁ˵ÚÒ»¸öȱµã£¬ÄÇЩֻÐèÒªÒ»¸öʵÀýµÄÀàÏëʵÏÖ
Singleton mode
£¬Ö»Òª´Ó
Singleton
Àà¼Ì³Ð¼´¿É£¬ÎÞÂÛÔÚ´úÂëµÄÄÄÀïʵÀý»¯¸ÃÀ࣬¶¼Ö»´æÔÚ¸ÃÀàµÄÒ»¸öʵÀý¡£
 
ΪÁ˽â¾öµÚ
2
¸öȱµã£¬Ò»¸ö½ø»¯µÄ°æ±¾³öÏÖÁË£¬ÈçÏ£º
class
Singleton(object):
   
objs 
= {}
   
objs_locker = 
threading.Lock()
   
def __new__(cls, *args, **kv):
       
if cls in cls.objs:
           
return cls.objs[cls]
       
cls.objs_locker.acquire()
       
try:
           
if cls in cls.objs: ## double check
locking
               
return cls.objs[cls]
        &nb


Ïà¹ØÎĵµ£º

pythonÄ£¿é

¼ò½é
ÄãÒѾ­Ñ§Ï°ÁËÈçºÎÔÚÄãµÄ³ÌÐòÖж¨ÒåÒ»´Îº¯Êý¶øÖØÓôúÂë¡£Èç¹ûÄãÏëÒªÔÚÆäËû³ÌÐòÖÐÖØÓúܶຯÊý£¬ÄÇôÄã¸ÃÈçºÎ±àд³ÌÐòÄØ£¿Äã¿ÉÄÜÒѾ­²Âµ½ÁË£¬´ð°¸ÊÇʹÓÃÄ£¿é¡£Ä£¿é»ù±¾ÉϾÍÊÇÒ»¸ö°üº¬ÁËËùÓÐÄ㶨ÒåµÄº¯ÊýºÍ±äÁ¿µÄÎļþ¡£ÎªÁËÔÚÆäËû³ÌÐòÖÐÖØÓÃÄ£¿é£¬Ä£¿éµÄÎļþÃû±ØÐëÒÔ.pyΪÀ©Õ¹Ãû¡£
Ä£¿é¿ÉÒÔ´ÓÆäËû³ÌÐò ÊäÈë ÒÔ±ãÀûÓÃËüµ ......

ѧϰpython½Å±¾ÓïÑԱʼǣ¨1£©

ptyhonºËÐıà³ÌµÚÈý°æµÄ×Ôѧ£¬Ö÷Ҫѧϰ±Ê¼Ç·¢Ï£º
µÚÒ»Õ£ºÊ¹ÓÃÈëÃÅ
ÈËÃÇΪʲôʹÓÃPYTHONÓïÑÔ£º
1¡¢Èí¼þÖÊÁ¿£»
2¡¢¿ª·¢ÕßЧÂÊ£»
3¡¢³ÌÐòµÄ¿ÉÒÆÖ²ÐÔ£»
4¡¢×é¼þ¼¯³É£»
5¡¢ÏíÊÜÀÖȤ£»
PYTHONÓïÑÔµÄȱµã£¬¾ÍÊÇËÙ¶ÈÂý¡£
ʹÓÃPYTHON¿ÉÒÔ×öЩʲô£º
1¡¢ÏµÍ³±à³Ì£»
2¡¢Óû§Í¼Ðνӿڣ»
3¡¢INTERNET½Å±¾£»
4¡¢×é¼þ¼¯³É£ ......

PythonÖ®¸Ð

´ÓÈ¥Ä껹û±ÏÒµ¾Í½Ó´¥Python£¬ÉÏÖÜÓÐЩÎÞÁÄÖØÐÂÔÙ¿´Ò»±é£¬·¢ÏÖÆäȷʵ²»´í¡£Óï·¨¼òµ¥£¬Ò»¸öÏÂÎç»ù±¾Á˽⣬ʹÓÃPydev²å¼þÔÚEclipseÖнøÐпª·¢»ù±¾ÉÏûÓÐÈκÎÕϰ­¡£ÖصãÊÇÆäЧÂʺܸߣ¬²»Ðè±àÒëÖ±½ÓÔËÐС£±È½ÏÊʺϽøÐÐÊý¾ÝµÄÔ¤´¦Àí¡£²»´í£¬ÒÔºóÓлú»áºÃºÃÓÃÓᣠ......

pythonѧϰ£¨1£©£­×Öµä (Dictionary)

   
×ֵ䣨Dictionary£©ÊÇÒ»ÖÖÓ³Éä½á¹¹µÄÊý¾ÝÀàÐÍ£¬ÓÉÎÞÐòµÄ“¼ü£­Öµ¶Ô”×é³É¡£×ÖµäµÄ¼ü±ØÐëÊDz»¿É¸Ä±äµÄÀàÐÍ£¬È磺×Ö·û´®£¬Êý×Ö£¬tuple£»Öµ¿É
ÒÔΪÈκÎpythonÊý¾ÝÀàÐÍ¡£
1¡¢Ð½¨×Öµä
>>> dict1={}     
#½¨Á¢Ò»¸ö¿Õ×Öµä
>>> type(dict1)
<ty ......

´î½¨S60ÊÖ»ú¶ËPythonÈí¼þÔËÐÐ,¿ª·¢,·¢²¼Æ½Ì¨

µÚÒ»²½£º´î½¨ÊÖ»úÔËÐÐÆ½Ì¨
ÒªÔÚS60ÊÖ»úÉÏÔËÐÐPY¿ª·¢µÄÈí¼þ,Ê×ÏȾÍÒª´î½¨ÊÖ»úPYÔËÐл·¾³.ŵ»ùÑÇÊÖ»ú±¾Éí²»Ö§³ÖPython,ËùÒÔÒª°²×°Python²å¼þ.
PS£ºÒ»¶¨Òª°²×°ÔÚCÅÌ£¡ÎÒÒ»¿ªÊ¼×°E£¬½á¹û³öÏÖÁ˺ÜÑÏÖØµÄÎÊÌ⣡²»¹ý,×î½üÍøÉÏ·¢ÏÖÓÐEÅ̰æµÄÀ²,Äã¿ÉÒÔ×Ô¼ºÊÔÑéһϣ¬¹þ¹þ
PythonScriptShell_1_4_5_3rdEd.SIS
Pyth ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ