print memory address of Python variable [duplicate] Ask Question

print memory address of Python variable [duplicate] Ask Question

Python 2.7 で変数のメモリ アドレスを印刷するにはどうすればよいでしょうか。id() は変数またはオブジェクトの 'id' を返すことはわかっていますが、メモリ アドレスとして期待していた 0x3357e182 スタイルを返しません。print &xたとえば、x が C++ int 変数である場合、 のような操作を実行したいのですが。これを Python で実行するにはどうすればよいですか。

ベストアンサー1

id使用するメソッドは、16進数に変換する場合です。

hex(id(variable_here))

例えば:

x = 4
print hex(id(x))

私にくれた:

0x9cf10c

それがあなたが望むものですよね?

(面白いことに、2 つの変数を同じものにバインドすると、int同じメモリ アドレスが使用される可能性があります。) 次を
試してください。

x = 4
y = 4
w = 9999
v = 9999
a = 12345678
b = 12345678
print hex(id(x))
print hex(id(y))
print hex(id(w))
print hex(id(v))
print hex(id(a))
print hex(id(b))

これにより、大きな整数の場合でも同一のペアが生成されました。

おすすめ記事