[pyar] i+=1 vs i=i+1
Claudio Freire
klaussfreire en gmail.com
Vie Mayo 4 12:27:16 ART 2012
2012/5/4 Angel Java Lopez <ajlopez2000 en gmail.com>:
> no solo es legibilidad, si f() tiene side effect, podria no ser iguales las
> dos expresiones, no?
>
> Tambien podria ser que f() la primera vez devuelva 1, y luego f() la segunda
> vez devuelva 2
No sólo legibilidad ni nada de eso... dependiendo de lo que sea "i",
podría ser totalmente diferente.
class MutableInt(object):
__slots__ = ['value']
def __init__(self, value=0):
self.value = getattr(value, 'value', value)
def __iadd__(self, other):
self.value += MutableInt(other).value
def __add__(self, other):
return MutableInt(self.value + MutableInt(other).value)
def __str__(self):
return str(self.value)
def __repr__(self):
return repr(self.value)
>>> i = MutableInt(0)
>>> j = i
>>> i += 1
>>> j
1
>>> i = MutableInt(0)
>>> j = i
>>> i = i + 1
>>> j
0
More information about the pyar
mailing list