在 Python 类中创建增量 ID

在 Python 的类中创建增量 ID

Create an incremental ID in a Class in Python

要在类中创建增量 ID:

  1. 使用该itertools.count()方法获取一个自增count
    对象。
  2. 将实例变量分配给对象id调用的结果next()
    count
  3. 每个类实例都有一个唯一的id属性。
主程序
import itertools class Employee(): id_obj = itertools.count() def __init__(self, name, salary): self.id = next(Employee.id_obj) self.name = name self.salary = salary alice = Employee('Alice', 100) bob = Employee('Bobbyhadz', 100) carl = Employee('Carl', 100) print(alice.id) # 👉️ 0 print(bob.id) # 👉️ 1 print(carl.id) # 👉️ 2

我们使用
itertools.count
方法创建了一个返回自动递增
count对象的迭代器。

主程序
import itertools id_obj = itertools.count() print(next(id_obj)) # 👉️ 0 print(next(id_obj)) # 👉️ 1 print(next(id_obj)) # 👉️ 2

请注意,我们将方法id中每个实例的属性分配给使用对象__init__()
调用的结果。
next()count

itertools.count()方法采用默认start设置为的参数。0

start如果您需要创建起始于1或任何其他值的增量 ID,则可以为参数指定一个值。

主程序
import itertools class Employee(): # 👇️ start incremental ID at 1 id_obj = itertools.count(1) def __init__(self, name, salary): self.id = next(Employee.id_obj) self.name = name self.salary = salary alice = Employee('Alice', 100) bob = Employee('Bobbyhadz', 100) carl = Employee('Carl', 100) print(alice.id) # 👉️ 1 print(bob.id) # 👉️ 2 print(carl.id) # 👉️ 3

1我们为参数指定了一个值start,因此自动递增的 ID 从1.

每次创建类实例时,该__init__()方法都会运行,并且其id
属性会设置为调用
next()count对象的结果。

迭代器对象表示数据流。每次我们将迭代器传递给next()函数时,都会返回流中的下一个项目。