📜  查找和打印变量地址的Python程序

📅  最后修改于: 2022-05-13 01:55:14.238000             🧑  作者: Mango

查找和打印变量地址的Python程序

在本文中,我们将看到如何查找和打印Python变量的地址。

可以通过以下方式完成:

  • 使用 id()函数
  • 使用 addressof()函数
  • 使用 hex()函数

方法一:使用 id() 查找并打印变量的地址

我们可以使用 id()函数获取地址,id()函数给出特定对象的地址。

在这里,我们将找到列表、变量、元组和字典的地址。

Python3
# get id of list
a = [1, 2, 3, 4, 5]
print(id(a))
  
# get id of a variable
a = 12
print(id(a))
  
# get id of tuple
a = (1, 2, 3, 4, 5)
print(id(a))
  
# get id of a dictionary
a = {'a' : 1, 'b' : 2}
print(id(a))


Python3
# import addressof,
# c_int modules from ctypes module
from ctypes import c_int, addressof
  
# get memory address of variable
a = 44
print(addressof(c_int(a)))


Python3
# get id of list in hexadecimal representation
a = [1, 2, 3, 4, 5]
print(hex(id(a)))
  
# get id of a variable in hexadecimal representation
a = 12
print(hex(id(a)))
  
# get id of tuple in hexadecimal representation
a = (1, 2, 3, 4, 5)
print(hex(id(a)))
  
# get id of a dictionary in hexadecimal representation
a = {'a': 1,'b' : 2}
print(hex(id(a)))


输出:

140234866534752
94264748411744
140234904267376
140234866093264

方法二:使用addressof()查找并打印变量的地址

我们还可以使用这些函数获取内存地址,ctypes 是Python的外部函数库。它提供与 C 兼容的数据类型,并允许调用 DLL 或共享库中的函数。

示例:获取变量内存地址的Python程序。

蟒蛇3

# import addressof,
# c_int modules from ctypes module
from ctypes import c_int, addressof
  
# get memory address of variable
a = 44
print(addressof(c_int(a)))

输出:

140234866278064

方法 3:使用查找和打印变量的地址 十六进制()

这里我们将调用 hex(address)函数,将内存地址转换为十六进制表示。

示例:获取十六进制表示的内存地址的Python程序。

蟒蛇3

# get id of list in hexadecimal representation
a = [1, 2, 3, 4, 5]
print(hex(id(a)))
  
# get id of a variable in hexadecimal representation
a = 12
print(hex(id(a)))
  
# get id of tuple in hexadecimal representation
a = (1, 2, 3, 4, 5)
print(hex(id(a)))
  
# get id of a dictionary in hexadecimal representation
a = {'a': 1,'b' : 2}
print(hex(id(a)))

输出:

0x7fba9b0ae8c0
0x5572da858b60
0x7fba9f3c4a10
0x7fba9b05b8c0