|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
当变量为字符和数字的时候,整个模块内就一个内存对应一个变量
>>> a=1
>>> print(a,id(a))
1 1523438032
>>> b=1
>>> print(b,id(b))
1 1523438032
>>> a="abc"
>>> print(a,id(a))
abc 5673440
>>> b="abc"
>>> print(b,id(b))
abc 5673440
当变量为元组,列表的时候,相同内容就可以存在不同内存地址里了
>>> a=[1,2,3]
>>> print(a,id(a))
[1, 2, 3] 32265520
>>> b=[1,2,3]
>>> print(b,id(b))
[1, 2, 3] 32266040
>>> a=(1,2,3)
>>> print(a,id(a))
(1, 2, 3) 33103920
>>> b=(1,2,3)
>>> print(b,id(b))
(1, 2, 3) 33104240
所以我想问的是:
当是整型和字符的时候:
a=1
b=1 相当于 b=a 都是直接复制地址变量么?
a=[1,2,3]
b=[1,2,3] 不等于 b=a 前边是新建变量,后边是地址复制,对么?
谁能把Python变量内存机制解释一下不啊 最好用堆栈及可变值和不可变值解释
数字,元祖,字符串,是不可变值
列表,字典,对象,函数是可变值 |
|