首页 > 试题广场 >

2 [问答]为什么说Python采用的是基于值的内存管理模式

[问答题]
为什么说Python采用的是基于值的内存管理模式?

Python是基于值
C/C++等一些是基于内存
先看看Python
改变了值,变量的地址便改变了
具有相同值的变量地址是一样的

>>> id(a)
1655991648
>>> a = 100
>>> id(a)
1655994528
>>> b = 100
>>> id(b)
1655994528
>>>

这也就是为什么下面这条语句可以简单地交换两个变量的值
a, b = b, a

再来看看C++

#include <bits/stdc++.h>

using namespace std;

int main(int argc, char const *argv[])
{
    int n1 = 10;
    int n2 = 10;
    // 0x61ff1c 0x61ff18
    cout << &n1 << " " << &n2;

    // 0x61ff14 0x61ff14
    int n3 = 10;
    cout << &n3 << " ";
    n3 = 100;
    cout << &n3;
    system("pause");
    return 0;
}
发表于 2018-11-25 16:55:14 回复(0)
不用声明变量类型,只有赋予它值才能确定的类型
发表于 2019-10-05 15:20:32 回复(0)
python使用变量不用提前声明,你需要用的时候,直接给一个变量赋值,这个变量就有意义了;
而像c/c++中,提前声明变量的操作,就是为变量开辟一个固定的内存
发表于 2021-03-15 18:59:16 回复(0)
Python中的变量并不直接存储值,而是存储了值的内存地址或者引用,假如为不同变量赋值为相同值,这个值在内存中只有一份,多个变量指向同一块内存地址。
发表于 2019-01-18 20:54:19 回复(0)
python 为什么是基于值呢,难道不是基于引用计数嘛
编辑于 2023-10-29 17:22:32 回复(0)
python的数字是不可变对象,所以重新复制的时候,所指向的id地址是不一样的,但是python在常用的小数-255-256之间设计了小数池,在这个范围内他的id是不随着重新创建对象而改变!
发表于 2021-07-22 07:00:32 回复(0)
因为python使用变量不用提前声明,直接给变量赋值就可以了,值相同指向的内存地址相同
发表于 2021-05-31 14:54:15 回复(0)
在值相同的情况下,不同变量指向的地址位置是同一个内存地址,变量的值发生改变,内存地址也发生改变
发表于 2021-05-23 21:12:17 回复(0)
Python中,在为变量赋值的时候,变量就指向了对应值的内存空间,value是与id一一对应的
发表于 2021-04-17 14:47:15 回复(0)
因为python如果为不同变量赋值为相同值,这个值在内存中只保存一份,多个变量指向同一个值的内存空间首地址,这样可以减少内存空间的占用,提高内存利用率。
发表于 2021-03-18 14:50:18 回复(0)
对于基础类型来说,比如int类型定义1,那么所有用到int类型1的地方都是指向此地址,比如列表[1,1,1]列表中这三个1的地址都相同,列为之前定义的1
发表于 2020-12-28 09:06:29 回复(0)
Python中的变量并不直接存储值,而是存储了值的内存地址或者引用,假如为不同变量赋值为相同值,这个值在内存中只有一份,多个变量指向同一块内存地址。
发表于 2020-12-19 15:43:00 回复(0)
面向对象?所有编程都指向对象,对象都是存在值的吧,我是这么想的
发表于 2020-11-06 19:42:19 回复(0)
基于值的内存管理
同一值指向同一地址。
c++的局部变量保存在栈中,其占据的内存是由编译器自动分配的,每次的内存是基内存+偏移内存决定的。
发表于 2020-09-13 17:39:42 回复(0)
值相同,内存位置相同
发表于 2020-07-11 00:13:13 回复(1)
不同变量值相同,指向同意内存地址
发表于 2020-07-07 17:44:24 回复(0)
基于值的内存模型
发表于 2020-06-25 10:28:33 回复(0)
自增加一,python和其他语言就完全不一样,不能用i++ 在python中只能用i=i+1或者 i+=1 基于值的储存方式。 能很明显地说明
发表于 2020-06-12 00:43:53 回复(0)
Python采用的是基于值的内存管理方式,如果不同变量赋值相同值,则在内存中只有一份该值,多个变量指向同一块内存地址
发表于 2020-06-07 11:51:37 回复(0)
Python中,根据值来开辟内存空间,在为变量赋值的时候,变量就指向了对应值的内存空间,value是与id一一对应的
发表于 2020-05-15 01:27:13 回复(0)