python2.7中赋值运算符的含义
我做了以下工作:python2.7中赋值运算符的含义,python,python-2.7,Python,Python 2.7,我做了以下工作: a=12345 我试图理解这句话的意思。请回答以下问题 a指向内存地址12345 (对/错) 如果我这样做,b=12345。然后b也指向12345的回忆录地址 (对/错) 我已经读到12345的ref计数在b指向它之后应该增加1。 (对/错) 如何检索12345的内存地址。我想确认a和b都指向12345的地址。请澄清 我尝试使用id函数(它只显示相同的内存位置) “a指向内存地址12345(真/假)” 对 “如果我做了b=12345。那么b还指向12345的回忆录地址(真/假
a=12345
我试图理解这句话的意思。请回答以下问题
b=a
,则b
将指向与a
相同的内存位置。对于b=12345
,答案未知:内存中可能有多个12345
a
和b
指向同一位置,则为True:见上文a
和b
是否指向同一内存位置,请使用is
,如a is b
。例如,在以下情况中,a
和b
指向不同的内存位置:
>>> a = 12345
>>> b = 12345
>>> a is b
False
相比之下,在以下情况下,它们指向相同的位置:
>>> a = 1
>>> b = 1
>>> a is b
True
python创建了一个名为a、值为12345的变量。先生,我已经知道你说了什么。我的问题仍然没有答案。请阅读本文末尾的引用。可能是重复的,你对内存地址和指针很感兴趣。Pyhon不处理这些。另外,python的不同实现可能会(并且会!)以不同的方式处理这些事情。感谢您的明确解释。关于您的评论“答案未知:内存中可能有多个12345副本。”。我们可以在内存中有多个相同整数的副本吗?@fsociety是。例如,上面包含的结果显示
a is b
在12345
@John1024的情况下返回False为什么a is b==True
在a=1
和b=1
时,而不是在12345时返回False?@Matthias,如果我运行相同的代码non-交互地说,12345的True
也很混乱。a
只是一个名称。它根本不指向内存地址。请参阅。id(obj)
返回对象的地址只是CPython的一个实现细节,与名称绑定无关。