puedo definir un objeto y asignar atributos y métodos:objetos o cierres: ¿cuándo usarlos?
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()
o proporcionar la misma funcionalidad mediante la definición de un cierre:
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']()
creo que la sintaxis de objetos se vería más limpio que la mayoría de los espectadores, pero ¿Hay casos en los que el uso de un cierre sería semánticamente preferible?
Consulte también http://stackoverflow.com/questions/256625/when-to-use-closure/256651#256651. ;) – FMc
:) Sí Stephen debería estudiar bajo Qc Na. – Yuji
¿Todavía está tomando aprendices? :) – hatmatrix