[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