📜  python 从对象数组中获取 id - Python (1)

📅  最后修改于: 2023-12-03 14:46:12.242000             🧑  作者: Mango

Python 从对象数组中获取 id

当我们需要从一组对象中获取它们的唯一标识符(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]
方法二:使用内置函数id()

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的几种简单方法,我们可以根据实际需求选择其中的一种或多种方法。