Python在循环中创建类实例

2024-10-01 07:20:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python新手,所以我现在很困惑。我只想在一个循环中创建MyClass类的两个实例。在

我的代码:

for i in range(1, 10):
  my_class = MyClass()
  print "i = %d, items = %d" % (i, my_class.getItemsCount());
  my_class.addItem(i)

我的课

^{pr2}$

输出是:

i = 0, items = 0
i = 1, items = 1
i = 2, items = 2
and so on...

但每次迭代时,我都希望在变量my_class中有一个新的MyClass空实例。因此,预期产出为:

i = 0, items = 0
i = 1, items = 0
i = 2, items = 0

你能帮助我理解吗? 谢谢。在


Tags: and实例代码informymyclassitems
1条回答
网友
1楼 · 发布于 2024-10-01 07:20:38

_items是一个类属性,在类定义期间初始化,因此通过向其附加值,可以修改属性和非实例属性。在

为了解决这个问题,您可以通过将以下代码放入__init__方法,为类的每个实例创建_items

class MyClass:
    def __init__(self):
        self._items = []

{cd1>所有的实例都是不同的

^{pr2}$

因此,附加将按预期工作。在

顺便说一下,在你的例子中^{} is not quite good name choice for a class variable。在

相关问题 更多 >