it's only about usage. The Rules of the language. implementation does not matter, Cpython behaves same as IronPython or Jython or what-have-you - at least for this basic stuff.
if you use python in very procedural way, and never reuse things in time, then probably does not matter. But, thing is, python is not very procedural, and, most of the stuff happens and depends in time as well as in space/storage/memory. And those rules draw the boundaries which is where and when, and why.
One weird way of looking at these maybe that "variables" - i.e. names - are somewhat like attributes of some superficial "instance" called namespace, with leaner syntax; but with different behavior than plain attributes on things (btw those are quite deep). And there no other ways to access and juggle values/things - so one better knows them.
Read that chapter once. You may or may not grasp everything (and don't need to). Then forget about it. Next time you step on weird error of some xyz being 4 when it was assigned 67, re-read it. Repeat..
if you use python in very procedural way, and never reuse things in time, then probably does not matter. But, thing is, python is not very procedural, and, most of the stuff happens and depends in time as well as in space/storage/memory. And those rules draw the boundaries which is where and when, and why.
One weird way of looking at these maybe that "variables" - i.e. names - are somewhat like attributes of some superficial "instance" called namespace, with leaner syntax; but with different behavior than plain attributes on things (btw those are quite deep). And there no other ways to access and juggle values/things - so one better knows them.
Read that chapter once. You may or may not grasp everything (and don't need to). Then forget about it. Next time you step on weird error of some xyz being 4 when it was assigned 67, re-read it. Repeat..