关于 python 是一种动态类型的语言

Regarding python being a dynamically typed language

众所周知,Python 是一种动态类型语言。我是从 Java 开始学习 Python 的,我一直想知道的是,在 Java 中,我们进行变量赋值,

int testVariable = 5;

执行上述代码后,Java 分配一个内存位置,该位置能够容纳 类型整数 的值,并将其称为 testVariable。因此,当我们更改变量的值时,java 只是更新 testVariable 的 value 而它 不必更改变量的类型 因为我们不能将字符串分配给 int。所以在相同的内存位置,只会更新值。

然后,让我们假设我们在Python、

中执行以下操作
myVariable = 5

现在,由于这里的值是 5 并且值的类型是 int,Python 创建一个内存位置可以保存 int 类型的值并将值(在本例中为 5)存储在该内存位置。

然后,我可以将变量名 'myVariable' 绑定到一个字符串类型的值,如下所示,

myVariable = 'Test String'

所以一旦完成,会Python将之前保存值 5 的内存位置移动到其他适合保存字符串值的位置(因为第一个位置有一开始就适合保存整数而不是字符串)并将这个新的内存位置命名为 myVariable?或者,python 是否只是修改存储整数值的内存位置,以便它现在可以保存字符串值?

请说明一下。谢谢。

在Python中,变量名只是对对象存储位置的引用,对象具有类型。

因此,当您将 myVariable5 更改为 'Test String' 时,变量引用 myVariable 更改为引用新的字符串位置。