Python中,当输入 a = 3 时,Python 怎么知道那代表一个整数呢?在这种情况下,Python 怎么知道 a 是什么?
变量创建:
一个变量(也就是变量名),就像a,当代码第一次给它赋值时就创建了它。从技术上讲,Python 在代码运行之前先检测变量名,但你可以理解为最初的赋值操作在创建变量。
变量类型:
变量永远不会拥有任何和它关联的类型信息或约束。类型的概念存在于对象而不是变量名中。变量原本是通用的,它只是在一个特定的时间点,简单地引用了一个特定的对象而已。
变量使用:
当变量出现在表达式中,它会马上被当前引用的对象所代替,无论这个对象是什么类型。此外,所有的变量必须在使用前被明确地赋值,使用未赋值的变量会产生错误。
Python中的赋值操作:a = 3
(1)创建一个对象来代表值 3
(2)创建一个变量a,如果它还没有创建的话
(3)将变量与新的对象3相连接
Python中从变量到对象的连接称为引用。也就是说,引用是一种关系,通过内存中的指针的形式来实现。一旦使用(引用)变量,Python自动跟踪这个变量到对象的连接。以具体的术语来讲:
(1)变量是一个系统表的入口,包含了指向对象的连接。
(2)对象是被分配到的一块内存,有足够的空间去表示它们所代表的值。
(3)引用是自动形成的从变量到对象的指针。
类型属性对象,而不属于变量:
当我们对一个变量多次赋值后的结果:
a = 3
a = 'spam'
a = 1.23
我们只是把a修改为对不同的对象的引用,因为变量没有类型,我们实际上并没有改变变量a的类型,只是让变量引用了不同类型的对象而已。