深入了解Python变量

Vik*_*dav 0 python

  1. 说所有Python变量都是指向某个数据对象(例如int或list)的指针(以C表示)的指针是否正确?例如a = 5将对象int(5)的地址放入a,其中a有自己的地址,这是无用的(我认为)。

  2. 并且在Python中定义了print以打印存储在a中的地址所指向的对象的内容。

  3. 在Python中定义了id来打印存储在a中的地址。

这到底是怎么回事?

che*_*ner 6

  1. 不是真的,但是很接近。Python变量是引用对象的名称。句号 Python没有定义有关此操作方式的任何语义。

  2. print将对象作为其参数。该对象可经由文字传递(print(3)print("foo")print(True)),或经由基准(print(a))。

  3. id返回在该对象的生存期内该对象唯一的整数标识符。语言也没有定义该整数什么。由实施决定。它可以很容易地是一个从0开始并在每次创建新对象时递增的序列号。

关于“幕后”的任何问题都只能通过指定您正在使用的Python实现来回答,并且该答案对理解特定Python的含义并不会真正起到任何作用,而仅在于理解特定实现的作用它。