2014-11-24 7 views
0
mystr = 'abvd' 
mysubstring = mystr[1:2] 

В приведенном выше коде есть ли новое распределение для присвоения mysubstring?Назначение из строкового среза создает новый экземпляр?

(mysubstring может «точка» в тот же участок памяти, который был создан для mystr)

+0

Да, есть новое распределение. – nathancahill

+0

Это может быть, но тогда mysubstring будет «поврежден», если вы хотите удалить mystr –

+0

Ознакомьтесь с http://www.pythontutor.com/visualize.html – nathancahill

ответ

0

Вы можете использовать метод идентификатор() в обоих случаях и увидеть, что идентификатор вы получите разные.

0

Запуск этих двух линий в http://www.pythontutor.com/visualize.html. Вы увидите два распределения в глобальном фрейме.

>>> mystr = 'abvd' 
>>> mysubstring = mystr[1:2] 

В отличие:

>>> mystr = ['a', 'b', 'v', 'd'] 
>>> mysubstring = mystr[1:2] 
Смежные вопросы