Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
关于python是一种动态类型化语言_Python_Memory_Memory Management_Variable Assignment - Fatal编程技术网

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

关于python是一种动态类型化语言,python,memory,memory-management,variable-assignment,Python,Memory,Memory Management,Variable Assignment,众所周知,Python是一种动态类型化语言。我是从Java学习Python的,我一直想知道的是,在Java中,我们做变量赋值 int testVariable = 5; 执行上述代码后,Java将分配一个内存位置,该位置能够保存类型integer的值,并将其称为testVariable。因此,当我们更改变量的值时,java只更新testVariable的值,而不必更改变量的类型,因为我们无法将字符串分配给int。因此在相同的内存位置中,只更新值 那么,让我们假设我们在Python中执行以下操作

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

int testVariable = 5;
执行上述代码后,Java将分配一个内存位置,该位置能够保存类型integer的值,并将其称为testVariable。因此,当我们更改变量的值时,java只更新testVariable的,而不必更改变量的类型,因为我们无法将字符串分配给int。因此在相同的内存位置中,只更新值

那么,让我们假设我们在Python中执行以下操作

myVariable = 5
现在,因为这里的值是5,值的类型是int,Python创建了一个内存位置,它可以保存int类型的值,并将值(在本例中为5)存储在该内存位置

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

myVariable = 'Test String'
因此,一旦完成此操作,Python是否会将之前保存值5的内存位置移动到适合保存字符串值的其他位置(因为第一个位置适合保存第一个位置的整数而不是字符串),并将此新内存位置命名为myVariable?或者,python只是修改存储整数值的内存位置,以便现在可以保存字符串值吗?


请解释一下。谢谢。

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

因此,当您将
myVariable
5
更改为
“测试字符串”
时,变量引用
myVariable
将更改为引用新的字符串位置