在Python中编写一些简单的面向对象的东西时,我碰巧遇到了这个问题。假设我创建了一个具有增量ID(使用静态变量)的类,并初始化了该类的新对象,并期望每个新实例的ID自动增加1。
这是我定义的课程:
class Object:
counter = 0
def __init__(self):
self.id = Object.counter
Object.counter += 1
然后,我创建了一个固定长度的数组,其中包含k个Object
类型的实例。我有两种方法可以做到这一点:
(1)
objects = [Object() for i in range(k)]
或(2)
objects = [Objects()] * k
(1)给我想要的结果,即每个实例都有一个增量ID。有趣的是,(2)产生的实例都具有相同的ID =0。所以我猜(2)与(1)一样,但并行吗?
此外,我主要使用Java进行OOP,这就是实现增量ID的方式。我不知道这是否也适用于Python。
很抱歉,如果我的问题很多余。我真的不知道该怎么称呼我正在做的这种事情(我想是列表理解)。
非常感谢您的答复!