如何使用repr()函数获取Python对象的 标识符
在Python中,可以使用内置的repr()函数来获取对象的 标识符。repr()函数返回一个对象的字符串表示,其中包含了对象的类型和内存地址。
示例如下:
class MyClass:
def __init__(self, name):
self.name = name
def __repr__(self):
return f'MyClass({self.name})'
# 创建对象
obj1 = MyClass('Object 1')
obj2 = MyClass('Object 2')
# 打印对象的字符串表示
print(repr(obj1))
print(repr(obj2))
运行上述代码,将得到以下输出:
MyClass(Object 1) MyClass(Object 2)
在上述示例中,我们定义了一个名为MyClass的类,它包含一个name属性和一个__repr__()方法。__repr__()方法返回一个以MyClass(name)形式表示的字符串,其中name是对象的名称。
通过调用repr()函数,并将对象作为参数传递给它,我们可以获取对象的字符串表示。在这个例子中,repr(obj1)将返回MyClass(Object 1),repr(obj2)将返回MyClass(Object 2)。
需要注意的是,repr()函数返回的字符串表示中包含了对象的内存地址,这就是对象的 标识符。每个对象在内存中都有一个 的地址,repr()函数就是利用这个地址来 标识对象的。
下面,让我们再来看一个更复杂的例子,来演示repr()函数如何获取对象的 标识符。
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
def __repr__(self):
return f'Point({self.x}, {self.y})'
# 创建对象
p1 = Point(1, 2)
p2 = Point(3, 4)
# 打印对象的字符串表示
print(repr(p1))
print(repr(p2))
运行上述代码,将得到以下输出:
Point(1, 2) Point(3, 4)
在这个例子中,我们定义了一个名为Point的类,它包含x和y两个属性以及一个__repr__()方法。__repr__()方法返回一个以Point(x, y)形式表示的字符串,其中x和y分别是点的坐标。
我们通过创建两个Point对象并调用repr()函数来获取它们的字符串表示。在这个例子中,repr(p1)将返回Point(1, 2),repr(p2)将返回Point(3, 4)。这个字符串表示中不仅包含了对象的属性值,还包含了每个对象的 标识符。
需要注意的是,repr()函数返回的字符串表示只是用于调试和显示的目的,它并不用于 标识对象。如果需要获取对象的真正 标识符,可以使用内置的id()函数。例如:
print(id(obj1)) print(id(obj2))
运行上述代码,将得到对象的 标识符,类似于以下形式的整数值:
140447469228464 140447469228536
总结起来,使用repr()函数可以获取Python对象的字符串表示,其中包含了对象的类型和内存地址。这个字符串表示可以用于调试和显示的目的,但如果需要获得对象的真正 标识符,应该使用内置的id()函数。
