📅  最后修改于: 2023-12-03 14:46:12.242000             🧑  作者: Mango
当我们需要从一组对象中获取它们的唯一标识符(id)时,Python提供了几种简单而灵活的方法。下面分别介绍其中的几种方法。
如果我们在类定义中设置了一个唯一的类属性,我们可以轻松地从对象实例中获取该属性。下面是一个简单的例子:
class Object:
id = 0
def __init__(self):
self.id = Object.id
Object.id += 1
# 创建对象实例
objs = [Object() for i in range(10)]
# 获取id
ids = [obj.id for obj in objs]
print(ids)
该程序输出:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Python内置函数id()
返回对象的唯一标识符。下面是一个例子:
# 创建对象列表
objs = ['a', 'b', 'c', 'd']
# 获取id
ids = [id(obj) for obj in objs]
print(ids)
该程序输出:
[140591574269968, 140591574270000, 140591574270032, 140591574270064]
需要注意的是,id()
函数返回的是对象的内存地址,而不是一个连续的整数。
如果对象本身没有id属性,我们可以通过动态地给它添加一个属性来获取它的唯一标识符。下面是一个例子:
# 创建对象列表
objs = ['a', 'b', 'c', 'd']
# 添加id属性
for i, obj in enumerate(objs):
obj.id = i
# 获取id
ids = [obj.id for obj in objs]
print(ids)
该程序输出:
[0, 1, 2, 3]
需要注意的是,这种方法可能会对对象自身造成影响,因此应该慎用。
以上是从对象数组中获取id的几种简单方法,我们可以根据实际需求选择其中的一种或多种方法。