What's the difference between running a script under command box and interpreter?
MRAB
python at mrabarnett.plus.com
Mon Nov 4 16:18:36 EST 2019
On 2019-11-04 21:05, Peter J. Holzer wrote:
> On 2019-11-03 16:34:39 -0800, jfong at ms4.hinet.net wrote:
>> I innocently thought that when import module through "from test import
>> *", I am working on test's globals under REPL. I didn't noticed the
>> REPL has its own globals.
>
> Well, you imported every global from test. So you are (kind of) working
> on those globals, or at least the objects they are referencing.
>
> In the real world, when you import a car from Germany, the car is now in
> your country, but you are not in Germany. Even if you import all the
> cars from Germany, you are still not in Germany.
>
> It's the same way in Python.
>
> Well, kind of. One important difference is that when you import a car
> from Germany, that car is no longer in Germany. But when you import a
> symbol from a Python module, that symbol still exists in that module.
> You just have a second symbol in your namespace referencing the same
> object (as Cameron pointed out).
>
The car itself isn't in Germany or your own country, it's just
"somewhere". All you've imported is a (copy of a) reference to that car,
under some name, and there can be other references to it in other places
too, possibly under the same name, possibly under a different name.
More information about the Python-list
mailing list