Как только переменная, назначенная файлу при открытии в python, что произойдет с файлом, когда переменная будет переназначена? - PullRequest
2 голосов
/ 20 января 2020

Если я назначу переменную файлу (при открытии файла), а затем переназначу переменную другому, что произойдет с файлом? Будет ли он автоматически закрываться или будет sh моей IDE?

File = open("File.txt", 'w')
File = "File"

Что будет с файлом?

1 Ответ

0 голосов
/ 20 января 2020

Технически, термин «переменная» является неправильным в Python. В Python все является объектом - когда вы присваиваете «переменную», вы действительно назначаете имя , которое ссылается на объект после знака =.

В вашем случае File является ссылкой на имя объекта, созданного open("File.txt", 'w'). Вы говорите интерпретатору Python, что всякий раз, когда вы ссылаетесь на File в своем коде, вы хотите получить доступ к объекту файла, заблокированному в режиме записи. Затем, когда вы переназначаете имя File на буквальную строку "File", вы просто сообщаете своему Python интерпретатору, что когда вы ссылаетесь на File, вы ищете "File" вместо созданного объекта файла.

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

В этом случае, однако, более вероятно, что файловый объект будет заблокирован в режиме записи и останется открытым до тех пор, пока сценарий не будет полностью завершен, оставив вам пустой файл в конце.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...