易截截图软件、单文件、免安装、纯绿色、仅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


相关文档:

Windows系统python环境变量的设置

一、如何能在命令行模式下运行Python命令?
为了在命令行模式下运行Python命令,需要将python.exe所在的目录附加到PATH这个环境变量中。
二、如何使Python解释器能直接import默认安装路径以外的第三方模块?
为了能import默认安装路径以外的第三方的模块(如自己写的模块),需要新建PYTHONPATH环境变量,环境变量的值设 ......

Python实现“各类型文件统计”功能

不多说了,直接看代码吧!
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:]
      ......

python学习(1)-字典 (Dictionary)

   
字典(Dictionary)是一种映射结构的数据类型,由无序的“键-值对”组成。字典的键必须是不可改变的类型,如:字符串,数字,tuple;值可
以为任何python数据类型。
1、新建字典
>>> dict1={}     
#建立一个空字典
>>> type(dict1)
<ty ......

Python的lambda函数与排序

前几天看到了一行求1000的阶乘的Python代码:
print
  
reduce
(
lambda
  
x
,
y
:
x
*
y
,
  
range
(
1
,
  
1001
))

一下子被python代码的精简
与紧凑所折服,故对代码进行了简单的分析。
reduce与range都是Python的内置函数。
range(1,10 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号