Python 内存地址-它对程序员有什么用途?

Python 内存地址-它对程序员有什么用途?,python,python-3.x,Python,Python 3.x,晚间社区 我正在学习Python,并且经常可以在内存中看到对象的地址,如: ... at 0x019F60F0 当我运行程序时,python正在与我共享。不管怎样,这对我将来有多有用?或者这仅仅是运行程序的副作用,而人类没有使用它?回答你的问题,内存地址有用吗,它们显然有用。我不是python开发人员,所以我不知道为什么要将地址输出给您,但一般来说,它们可以以多种不同的方式使用。 对于初学者来说,它们在调试代码时非常有用。如果您需要在代码中的某个确切时间点确切地知道内存地址中的值,您可以设置断

晚间社区

我正在学习Python,并且经常可以在内存中看到对象的地址,如:

... at 0x019F60F0

当我运行程序时,python正在与我共享。不管怎样,这对我将来有多有用?或者这仅仅是运行程序的副作用,而人类没有使用它?

回答你的问题,内存地址有用吗,它们显然有用。我不是python开发人员,所以我不知道为什么要将地址输出给您,但一般来说,它们可以以多种不同的方式使用。
对于初学者来说,它们在调试代码时非常有用。如果您需要在代码中的某个确切时间点确切地知道内存地址中的值,您可以设置断点,并根据您使用的IDE(如Visual Studio 2017),查看内存地址中的值,并将其与预期值进行比较。
另一个有用的东西是优化。在许多编程语言中,您可以引用一个已经保存该值的内存地址,而不是创建一个占用更多内存空间的新变量。在内存有限的机器中,比如嵌入式系统,或者需要非常快的程序,从长远来看可以获得巨大的性能提升。
在我的最后一个例子中,我将讨论安全性。虽然我不是这方面的专家,但我确实知道,通过查看某些系统(如服务器)中的部分内存,可以看到您是否受到攻击。您可以通过查找损坏内存的模式来判断。我确信有很多攻击会破坏你的记忆,但我能想到的一个是缓冲区溢出

这只是所有类型从对象继承的默认repr。主要用途是调试和区分不同的对象,地址本身相当于在CPython中调用hex(id(some_object))(尽管这是一个实现细节)


这只是所有类型从
对象
继承的默认
\uuuu repr\uuuu
。主要用途是调试和区分不同的对象,地址本身相当于在CPython中调用
hex(id(some_object))
(尽管这是一个实现细节)。