2016-09-07 5 views
1

я сделать следующее:смысла оператора присваивания в python2.7

a=12345 

Я пытаюсь undertstand смысла this.Please ответа ниже вопросов.

  1. а указывает на адрес памяти 12345 (истина/ложь)

  2. Если я сделать Ь = 12345. Затем b также указывает на памятный адрес 12345 (True/False)

  3. Я прочел, что число рефлексов 12345 должно увеличиться на 1 после того, как b указывает на него. (True/False)

  4. Как я получить адрес памяти 12345. Я хочу, чтобы проверить, что а и Ь оба указывают на адрес 12345.Please уточнения

Я попытался с помощью функции ID (это только показать ту же ячейку памяти для < = 255 дальности)

+1

Python создает переменную с именем a и со значением 12345. – Montreal

+0

Сэр, я уже знаю, что вы сказали.Мои вопросы остаются без ответа – fsociety

+0

Пожалуйста, прочитайте цитату блока в конце этого сообщения. http://stackoverflow.com/a/6101453/2308683 –

ответ

1
  1. "а указывает на адрес памяти 12345 (истина/ложь)"

    Правда.

  2. "Если я б = 12345. Тогда Ь также указывает на memoery адрес 12345. (True/False)"

    Может быть. Если вы назначили b=a, то b укажет на то же место памяти, что и a. С b=12345 ответ неизвестен: в памяти может быть более одной копии 12345.

  3. «Я прочитал, что подсчет ссылок на 12345 должен увеличиваться на 1 после того, как б указывает на него (True/False).»

    Правда, если a и b указал на то же место: смотри выше ,

  4. «Как я могу получить адрес памяти 12345. Я хочу проверить, что a и b оба указывают на адрес 12345. Просьба уточнить».

    Чтобы проверить a и b точка в том же месте памяти, используйте is как в a is b. Например, в следующем, a и b указывают на различные ячейки памяти:

    >>> a = 12345 
    >>> b = 12345 
    >>> a is b 
    False 
    

    В следующем, напротив, они указывают на то же место:

    >>> a = 1 
    >>> b = 1 
    >>> a is b 
    True 
    
+0

спасибо за пояснение пояснения .. учитывая ваш комментарий «ответ неизвестен: в памяти может быть более одной копии 12345». Можем ли мы иметь в памяти несколько копий одного и того же целого числа? – fsociety

+1

@fsociety Да. Результаты, включенные выше, например, показывают, что 'a is b' возвращает False для случая' 12345'. – John1024

+0

@ John1024 Почему 'a is b == True', когда' a = 1' и 'b = 1', а не с 12345? – lang2

Смежные вопросы