如何为Document类实例在构造时分配递升的ID编号
Document类自增ID实现方案
核心逻辑是通过类静态共享变量记录ID分配进度,每次构造实例时完成ID赋值与计数更新,代码实现逻辑如下:
Python 实现
class Document: # 类级别的静态计数变量,所有实例共享,初始值为0 _next_assign_id = 0 def __init__(self, content=""): # 给当前实例分配ID self.documentId = Document._next_assign_id # 计数+1,供下一个新实例使用 Document._next_assign_id += 1 # 其他文档属性初始化 self.content = content
效果验证:
- 首次实例化:
doc0 = Document("首页内容"),doc0.documentId输出为0 - 第二次实例化:
doc1 = Document("分类页内容"),doc1.documentId输出为1 - 后续实例按创建顺序依次递升
Java 实现
public class Document { // 静态共享计数变量 private static int nextAssignId = 0; // 实例自有ID属性 public int documentId; public String content; public Document(String content) { this.documentId = nextAssignId; nextAssignId++; this.content = content; } }
多线程场景下需要对静态计数变量做并发安全处理:Python可配合
threading.Lock加锁,Java可替换为AtomicInteger类型的计数变量,避免ID重复冲突。
内容的提问来源于stack exchange,提问作者Sue
相关产品推荐
相关产品推荐

