I have been studying Python, and I read a chapter which describes the
Assigning a value ofto a variable is one way to reset it to
its original, empty state.
Assigning a value ofto a variable is one way to reset it
to its original, empty state.
Martijn's answer explains what
None is in Python, and correctly states that the book is misleading. Since Python programmers as a rule would never say
Assigning a value of
Noneto a variable is one way to reset it to its original, empty state.
it's hard to explain what Briggs means in a way which makes sense and explains why no one here seems happy with it. One analogy which may help:
In Python, variable names are like stickers put on objects. Every sticker has a unique name written on it, and it can only be on one object at a time, but you could put more than one sticker on the same object, if you wanted to. When you write
F = "fork"
you put the sticker "F" on a string object
"fork". If you then write
F = None
you move the sticker to the
What Briggs is asking you to imagine is that you didn't write the sticker
"F", there was already an
F sticker on the
None, and all you did was move it, from
"fork". So when you type
F = None, you're "reset[ting] it to its original, empty state"
, if we decided to treatNone
as meaningempty state`.
I can see what he's getting at, but that's a bad way to look at it. If you start Python and type
print(F), you see
>>> print(F) Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'F' is not defined
NameError means Python doesn't recognize the name
F, because there is no such sticker. If Briggs were right and
F = None resets
F to its original state, then it should be there now, and we should see
>>> print(F) None
like we do after we type
F = None and put the sticker on
So that's all that's going on. In reality, Python comes with some stickers already attached to objects (built-in names), but others you have to write yourself with lines like
F = "fork" and
A = 2 and
c17 = 3.14, and then you can stick them on other objects later (like
F = 10 or
F = None; it's all the same.)
Briggs is pretending that all possible stickers you might want to write were already stuck to the