具有不同内容的类的多个实例

时间:2014-03-27 12:10:37

标签: python multiple-instances

我尝试制作具有不同内容的对象列表,但在创建实例时,它会编辑所有其他实例。

class Example(object):
    name = ''

   @classmethod
   def __init__(cls, name):
       cls.name = name

col = []
col.append(Example('text1'))
col.append(Example('text2'))
for item in col:
    print item.name

打印

'text2'
'text2'

当我希望它打印时

'text1'
'text2'

我也试过

var = Example('text1')
col.append(var)

我无法设置不同的变量名称,因为我希望它在循环中创建实例。

2 个答案:

答案 0 :(得分:4)

不要使__init__成为一种类方法;它是实例初始化程序

class Example(object):
    name = ''

   def __init__(self, name):
       self.name = name

通过使其成为类方法,您可以更改类,而不是创建新实例。

如果没有@classmethod装饰器,则类级name属性完全是可选的,您可以将其删除以供大多数使用。

答案 1 :(得分:0)

你想要这个:

class Example(object):
   def __init__(self, name):
       self.name = name