On 19/03/13 02:01, Hrvoje Niksic wrote:
On 03/18/2013 03:23 PM, Chris Angelico wrote:
The languages that permit you to assign to a function call all have
some notion of a reference type.
Assigning to function calls is orthogonal to reference types. For example,
Python manages assignment to subscripts without having references just fine:
val = obj[index] # val = obj.__getitem__(index)
obj[index] = val # obj.__setitem__(index, val)
In analogy with that, Python could implement what looks like assignment to
function call like this:
val = f(arg) # val = f.__call__(arg)
f(arg) = val # f.__setcall__(arg, val)
That's all very well, but what would it do? It's not enough to say that the
syntax could exist, we also need to have semantics. What's the use-case here?
(That question is mostly aimed at the original poster.)
Aside: I'd reverse the order of the arg, val in any such hypothetical
__setcall__, so as to support functions with zero or more arguments:
f(*args, **kwargs) = val <=> f.__setcall__(val, *args, **kwargs)
--
Steven
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe:
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com