【发布时间】:2022-01-07 16:32:28
【问题描述】:
当我们在 python 中创建一个类 A 的对象时,它包含两个实例变量 x=10 和 y=11。类 A 的对象是否仅包含实例变量的引用 x 和 y 以及值 10 和 11,因为对象将存储在堆中的不同位置?因此,由于 python 中的所有内容都是对象,实例变量也是对象,所以类 A 对象将仅包含引用 x 和 Y,而实际对象将存储在堆中的不同位置?我的理解正确吗?
【问题讨论】:
-
你能展示实现这个场景的代码吗?特别是,您如何定义
A以及实例变量如何获取它们的值? -
是的,如果
A的实例有10和11作为其属性,这些属性只是引用,数字10和11的实际数据不会存储在A的实例中. -
您可能想阅读nedbatchelder.com/text/names.html,其中包含有用的图表,在这里创建太麻烦了。
-
其实Python中只有一个整数为10,所有等于10的整数都是同一个对象。 (试试
5 + 5 is 10。操作符is会检查对象的身份,即事物是否位于相同的内存位置。)