c[:]()

Erik Max Francis max at alcyone.com
Fri Jun 1 02:26:33 EDT 2007


Warren Stringer wrote:

> `c[:]()` is unambiguous because:
> 
>     def c(): print 'yo'
> 
>     c()     # works, but
>     c[:]()  # causes:
> 
>     Traceback (most recent call last)...
>         c[:]()  # causes:
>     TypeError: unsubscriptable object
> 
> There are many `c()` to be found in the wild and no `c[:]()`, thus
> unambiguous. To be honest, I wasn't sure, until testing this, just now.

 >>> c = 'not quite'
 >>> c[:]
'not quite'
 >>> c[:]()
Traceback (most recent call last):
   File "<stdin>", line 1, in ?
TypeError: 'str' object is not callable

You also seem to be under the impression that `x[:]()` is somehow 
special syntax that is treated differently than `y = x[:]; y()`.  It is not.

Besides, _ambiguity_ was never the problem.  _Functionality_ is the problem.

-- 
Erik Max Francis && max at alcyone.com && http://www.alcyone.com/max/
  San Jose, CA, USA && 37 20 N 121 53 W && AIM, Y!M erikmaxfrancis
   To endure what is unendurable is true endurance.
    -- (a Japanese proverb)



More information about the Python-list mailing list