On Sunday 26 October 2003 04:58 pm, Just van Rossum wrote:
Sounds good to me. Question: what does this do?
def f(): def g(x): z := x g(3) print z return g g = f() print z g('foo') print z
That is, in the absence of a pre-existing binding, where does the binding for := go? I think it should be equivalent to global, going to the module scope.
I think it should raise NameError or UnboundLocalError or a new NameError subclass. "In the face of ambiguity, etc."
Absolute agreement here. I think a new subclass of NameError would be best. The simplest and most limited the functionality of := the more effective I think it will be.