Rebindings [was Re: Favorite non-python language trick?]

Steven D'Aprano steve at REMOVETHIScyber.com.au
Sun Jun 26 00:36:42 EDT 2005


On Sat, 25 Jun 2005 23:08:10 +0000, Bengt Richter wrote:

>>Using := and = for assignment and equality is precisely as stupid as using
>>= and == for assignment and equality. Perhaps less stupid: why do we use
>>== for equals, but not ++ for plus and -- for minus?
>>
> I agree, but I think := would be nice in python for RE-binding an existing
> binding, wherever it is seen from the local context. Thus you could
> write
> 
>     def foo(): x:=123
> 
> and
>    x = 456
>    def bar():
>        x = 789
>        foo()  # finds and rebinds local x
>        print x
>    bar() # -> 123
>    print x # -> 456
>    foo()      # finds and rebinds the global x
>    print x # -> 123
> 
> but
>    del x
>    foo()  #-> NameError exception, can't find any x to rebind
> 
> hm, wandered a bit OT there, ;-/

Given how much the use of global variables are discouraged, is it a
good idea to allow even more inter-namespace interactions?


-- 
Steven.




More information about the Python-list mailing list