Я пытаюсь уточнить для себя правила Python для присвоения значений переменным.Понимание связывания имени python
Является ли следующее сравнение между Python и C++ действительным?
В C/C++ в заявлении
int a=7
средства, память выделяется для целой переменной называетсяa
(количество на ЛЕВЫЙ от=
знака) и только тогда значение 7 хранится в нем.В Python заявление,
a=7
средство, безымянного целое число со значением объекта 7 (количество на ПРАВЫЙ стороне=
) сначала создается и хранится где-то в памяти. Затем к этому объекту привязано имяa
.
Вывод следующих программ на C++ и Python, похоже, подтверждает это, но я хотел бы получить некоторые отзывы о том, прав я.
C++ производит различные ячейки памяти для a
и b
то время как a
и b
, кажется, относятся к тому же место в Python (идущий на выходе идентификатора функции())
C код
#include<iostream>
using namespace std;
int main(void)
{
int a = 7;
int b = a;
cout << &a << " " << &b << endl; // a and b point to different locations in memory
return 0;
}
++
Выход: 0x7ffff843ecb8 0x7ffff843ecbc
Python: код
a = 7
b = a
print id(a), ' ' , id(b) # a and b seem to refer to the same location
Выход: 23093448 23093448
Вы могли бы найти это полезным: [Факты и мифы о Имена и значения Python] (http://nedbatchelder.com/text/names.html). – unutbu
@unutbu Это потрясающая ссылка. Большое спасибо! – smilingbuddha