[Python-Dev] PEP 203 Augmented Assignment

Guido van Rossum guido@beopen.com
Thu, 27 Jul 2000 12:03:39 -0500


> > No, trying to call something and retrying if it fails is a bad idea:
> > the code might fail for a very different reason, and retrying it might
> > mask the bug, or execute a side effect twice...
> 
> Yeah, I realized that too, while listening one of my colleagues trying to
> make some point or other. Hrm... So backwards compatibility is out ? I'm not
> sure howmany Python code uses slice-objects, but I would consider it a
> (personal ;) failure if slicing has to be *broken* before it can be fixed.

Huh?  I thought I proposed a b/w compat solution:

  IF there is a __getslice__ method:
     IF the slice step is None:
        call __getslice__(lo, hi)
     ELSE: # the slice step is not None
        call __getslice__(lo, hi, step)

What's wrong with that?

> If we can't figure out whether a function supports the 'new syntax'
> reliably, I don't see how we can transform the error message either. I'll
> bet inspecting the __getitem__ method to find out whether it supports the
> one or the other is way too much of a runtime penalty to suffer at each
> index.

No, we don't deal with __getitem__; if *it* doesn't support a tuple
containing slice objects, tough luck.

--Guido van Rossum (home page: http://www.pythonlabs.com/~guido/)