Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 具有不同内容的类的多个实例_Python_Multiple Instances - Fatal编程技术网

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

Python 具有不同内容的类的多个实例,python,multiple-instances,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 它会

我试图创建一个包含不同内容的对象列表,但创建实例时,它会编辑所有其他实例

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)
我无法设置不同的变量名,因为我希望它在循环中创建实例。

您希望这样:

class Example(object):
   def __init__(self, name):
       self.name = name
你想要这个:

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

不要把
\uuuu init\uuuu
当作类方法;它是一个实例初始值设定项:

通过使其成为类方法,您使其改变了类,而不是创建的新实例


如果没有
@classmethod
装饰器,类级别的
name
属性是完全可选的,您可以在大多数情况下删除它。

不要将
\uuuuuuuuuu>作为类方法;它是一个实例初始值设定项:

通过使其成为类方法,您使其改变了类,而不是创建的新实例


如果没有
@classmethod
装饰器,类级别的
name
属性完全是可选的,您可以在大多数情况下删除它。

为什么要将
\uuuuu init\uuuu
作为类方法呢?不要那样做。那你为什么要把
\uuuu init\uuu
作为一个类方法呢?别那么做,那就够了,谢谢。谢谢你的解释,就这样,谢谢你。谢谢你的解释。