我可以定義一個對象,併爲其分配的屬性和方法:物品或封閉物 - 何時使用?
class object:
def __init__(self,a,b):
self.a = a
self.b = b
def add(self):
self.sum = self.a + self.b
def subtr(self):
self.fin = self.sum - self.b
def getpar(self):
return self.fin
obj = object(2,3)
obj.add()
obj.subtr()
obj.getpar()
或通過定義一個閉合提供相同的功能:
def closure(a,b):
par = {}
def add():
par.update({'sum':a+b})
def subtr():
par.update({'fin':par['sum']-b})
def getpar():
return par['fin']
return {'add':add,'subtr':subtr,'getpar':getpar}
clos = closure(2,3)
clos['add']()
clos['subtr']()
clos['getpar']()
我覺得對象語法看起來吸塵器大多數觀衆,但有沒有使用閉包在語義上更可取的實例?
另請參閱http://stackoverflow.com/questions/256625/when-to-use-closure/256651#256651。 ;) – FMc 2010-07-05 23:49:29
:)是的斯蒂芬應該在Qc Na下學習。 – Yuji 2010-07-06 00:05:44
他還在學徒嗎? :) – hatmatrix 2010-07-07 02:11:36