Привет программистам,
У меня есть один конкретный вопрос - точнее о поведении python при назначении переменной. Давайте предположим, что этот код (взят из руководства Tensorflow):
(train_images, train_labels), (test_images, test_labels) = keras.datasets.fashion_mnist.load_data()
Я понимаю, что не могу сделать следующее:
train_images /= 250.0
-объект train_images
недоступен для записи, поэтому я не могу его изменить.
Но я определенно могу сделать следующее, чего я не понимаю:
train_images = train_images / 250.0
Означает ли это, что когда я "переназначаю" переменную train_images, питон каким-то образом автоматически забывает о старой и создает train_images
как новую переменную?
Прошу прощения за отсутствие знаний о поведении python - если есть очевидный ответ, просто отправьте ссылку на объяснение или документацию, где описан этот случай.
Большое спасибо и хорошего дня!
EDIT:
Под «без записи» я подразумевал, что объект доступен только для чтения (когда мы печатаем описание массива print( train_images.flags )
, мы получаем информацию из одной из строк, WRITEABLE : False
А более конкретно, когда используется train_images /= 250.0
, программа завершается и выдается следующая ошибка:
Traceback (most recent call last):
File "code_01_fashion.py", line 31, in <module>
train_images /= 250.0
ValueError: output array is read-only
С другой стороны train_images = train_images / 250.0
работает просто отлично.