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
Ïà¹ØÎĵµ£º
1. What’s the difference between all of the os.popen() methods?
popen2 doesn't capture standard error, popen3 does capture standard
error and gives a unique file handle for it. Finally, popen4 captures
standard error but includes it in the same file object as standard
output.
os.popen()&n ......
Python Áбí
listÊÇ´¦ÀíÒ»×éÓÐÐòÏîÄ¿µÄÊý¾Ý½á¹¹£¬¼´Äã¿ÉÒÔÔÚÒ»¸öÁбíÖд洢һ¸ö ÐòÁÐ µÄÏîÄ¿¡£¼ÙÏëÄãÓÐÒ»¸ö¹ºÎïÁÐ±í£¬ÉÏÃæ¼ÇÔØ×ÅÄãÒªÂòµÄ¶«Î÷£¬Äã¾ÍÈÝÒ×Àí½âÁбíÁË¡£Ö»²»¹ýÔÚÄãµÄ¹ºÎï±íÉÏ£¬¿ÉÄÜÿÑù¶«Î÷¶¼¶À×ÔÕ¼ÓÐÒ»ÐУ¬¶øÔÚPythonÖУ¬ÄãÔÚÿ¸öÏîĿ֮¼äÓöººÅ·Ö¸î¡£
ÁбíÖеÄÏîĿӦ¸Ã°üÀ¨ÔÚ·½À¨ºÅÖУ¬ÕâÑùPython¾ÍÖªµÀÄãÊ ......
Python ×Ö·û´®
×Ö·û´®ÊÇ ×Ö·ûµÄÐòÁÐ ¡£×Ö·û´®»ù±¾ÉϾÍÊÇÒ»×éµ¥´Ê¡£
ÎÒ¼¸ºõ¿ÉÒÔ±£Ö¤ÄãÔÚÿ¸öPython³ÌÐòÖж¼ÒªÓõ½×Ö·û´®£¬ËùÒÔÇëÌØ±ðÁôÐÄÏÂÃæÕⲿ·ÖµÄÄÚÈÝ¡£ÏÂÃæ¸æËßÄãÈçºÎÔÚPythonÖÐʹÓÃ×Ö·û´®¡£
ʹÓõ¥ÒýºÅ£¨'£©
Äã¿ÉÒÔÓõ¥ÒýºÅָʾ×Ö·û´®£¬¾ÍÈçͬ'Quote me on this'ÕâÑù¡£ËùÓеĿհף¬¼´¿Õ¸ñºÍÖÆ±í·û¶¼ÕÕÔÑù±£Áô¡£ ......
²»¶à˵ÁË£¬Ö±½Ó¿´´úÂë°É£¡
import os
path = 'e:/Download/'
kzm = []
kzmTemp = set()
kzmTemp2 = []
dict = {}
for root,dirs,files in os.walk(path):
for file in files:
ext = os.path.splitext(file)[1][1:]
  ......
µÚÒ»²½£º´î½¨ÊÖ»úÔËÐÐÆ½Ì¨
ÒªÔÚS60ÊÖ»úÉÏÔËÐÐPY¿ª·¢µÄÈí¼þ,Ê×ÏȾÍÒª´î½¨ÊÖ»úPYÔËÐл·¾³.ŵ»ùÑÇÊÖ»ú±¾Éí²»Ö§³ÖPython,ËùÒÔÒª°²×°Python²å¼þ.
PS£ºÒ»¶¨Òª°²×°ÔÚCÅÌ£¡ÎÒÒ»¿ªÊ¼×°E£¬½á¹û³öÏÖÁ˺ÜÑÏÖØµÄÎÊÌ⣡²»¹ý,×î½üÍøÉÏ·¢ÏÖÓÐEÅ̰æµÄÀ²,Äã¿ÉÒÔ×Ô¼ºÊÔÑéһϣ¬¹þ¹þ
PythonScriptShell_1_4_5_3rdEd.SIS
Pyth ......