Masking The Built-in Variable With Its Magic Behavior?
Solution 1:
In the interactive prompt, _
has "magic" behavior -- it gets set to the value of whatever expression was evaluated last:
>>>3 + 3
6
>>>_
6
If, however, you assign something to a variable named _
yourself, then you only "see" that variable, and the magic variable is hidden ("masked"):
>>>_ = 3>>>3 + 3
6
>>>_
3
This happens because your local variable _
is unrelated to the variable that has the magic behavior, it just happens to have the same name.
So don't do that, not in the interactive prompt anyway.
Solution 2:
It means exactly what it says it means; you should not assign anything to the _
variable as that would hide the real magic variable:
>>>1 + 1
2
>>>_
2
>>>_ = 'foo'>>>2 + 2
4
>>>_
'foo'
The magic _
variable stores the result of the last expression that was echoed, but by assigning to _
you no longer can 'see' this magic variable. Looking up _
shows whatever value I assigned to it now.
Luckily, you can also delete the shadowing _
name again:
>>>del _>>>2 + 2
4
>>>_
4
Post a Comment for "Masking The Built-in Variable With Its Magic Behavior?"