问候程序员,
我有一个特别要问的问题 - 更准确地说是在分配变量时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时,python会以某种方式自动忘记旧的变量并将train_images构造为新的变量?
请原谅我缺乏python的行为知识 - 如果有一个明显的答案,只需发布一些链接到解释或描述此案例的一些文档。
非常感谢你,祝你有个美好的一天!
编辑:
通过“不可写”我的意思是该对象是只读的(当我们打印数组的描述print( train_images.flags )时,我们从WRITEABLE : False的一行中获取信息
更具体地说,当使用train_images /= 250.0时,程序终止并输出以下错误:
Traceback (most recent call last):
File "code_01_fashion.py", line 31, in
train_images /= 250.0
ValueError: output array is read-only
另一方面,train_images = train_images / 250.0运行得很好。