为什么分配变量内存,运行在不同控制台中的python脚本会互相影响?

问题描述 投票:-1回答:2

我使用两个控制台来运行python脚本。一个是cmd控制台,另一个是pycharm控制台。令人惊讶的是,结果似乎是两个不同的控制台共享相同的内存空间。详细信息如下图所示。有四种现象令我感到困惑。

现象1:在相同地址中分配的不同控制台中的变量

在cmd控制台中,我创建了三个变量,'a'(地址为0x7ffaf8346290),'b'(地址为0x7ffaf83462b0)和'c'(地址为0x7ffaf83462d0)。

[在pycharm控制台中,我创建了两个变量,'a'(地址为0x7ffaf8346290)和'b'(地址为0x7ffaf83462b0)。

现象2:相同地址中的变量,不能被两个控制台访问

'c'指向cmd控制台中的地址0x7ffaf83462d0。在pycharm控制台中,3的地址为0x7ffaf83462d0,但无法访问'c'。

现象3:由一个控制台创建的变量,受到另一个控制台分配的内存的影响

[在pycharm控制台中,我创建了另外两个变量c=5(地址为0x7ffaf83462f0)和d=6(地址为0x7ffaf8346310)。

有趣的是,在cmd控制台中,5的地址为0x7ffaf8346310,与pycharm控制台中的地址相同。并且6的地址为0x7ffaf8346330,且顺序增长。

现象4:列表对象似乎没有受到影响

我分别在两个控制台中创建了两个列表[1,2,3,4],并且两个的地址似乎彼此分开。

cmd consolepycharm console

python memory pycharm windows-console
2个回答
0
投票

0
投票
virtual memory,这意味着两个进程可以将相同的虚拟内存地址同时用于不同的事物,而不会互相影响。

ID值仅保证对于具有重复生命周期的不同对象在同一过程中是不同的。

© www.soinside.com 2019 - 2024. All rights reserved.