说所有Python变量都是指向某个数据对象(例如int或list)的指针(以C表示)的指针是否正确?例如a = 5将对象int(5)的地址放入a,其中a有自己的地址,这是无用的(我认为)。
并且在Python中定义了print以打印存储在a中的地址所指向的对象的内容。
在Python中定义了id来打印存储在a中的地址。
这到底是怎么回事?
不是真的,但是很接近。Python变量是引用对象的名称。句号 Python没有定义有关此操作方式的任何语义。
print将对象作为其参数。该对象可经由文字传递(print(3),print("foo"),print(True)),或经由基准(print(a))。
id返回在该对象的生存期内该对象唯一的整数标识符。语言也没有定义该整数是什么。由实施决定。它可以很容易地是一个从0开始并在每次创建新对象时递增的序列号。
关于“幕后”的任何问题都只能通过指定您正在使用的Python实现来回答,并且该答案对理解特定Python的含义并不会真正起到任何作用,而仅在于理解特定实现的作用它。