-1

Скажем, я храню пароль в виде простого текста в переменной с именем passWd в виде строки. Как python освобождает эту переменную, когда я от нее отказываюсь (например, с помощью del passWd или passWd= 'new random data')?

Сохраняется ли строка в виде байтового массива, означая, что она может быть перезаписана в том месте памяти, в котором она изначально существовала, или это фиксированный набор в области памяти, который не может быть изменен, и при назначении нового значения новая область памяти имеет вид создано и старая область отбрасывается, но не перезаписывается нулем?

Я спрашиваю, как Python реализует безопасность областей памяти и хотел бы узнать больше об этом, главным образом потому, что мне любопытно :)

Из того, что я до сих пор собирал, использование del (или __del__) приводит к тому, что интерпретатор не освобождает области памяти этой переменной автоматически, что может вызвать проблемы, а также я не уверен, что del так ошибается при удалении значений. Но это только то, что я собрал, а не что-то черное или белое :)

1 ответ1

1

Ответ зависит от реализации. от http://docs.python.org/2/library/stdtypes.html

в разделе 5.6 «Типы последовательностей» обратите внимание на «Примечания № 6», в которых объясняется, что некоторые реализации (CPython для одной) выполняют обновления строк на месте в памяти, тогда как другие, по-видимому, обрабатывают строку как неизменный объект, который при замене / изменении определяет новая область в памяти.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .