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
作为一个类方法呢?别那么做,那就够了,谢谢。谢谢你的解释,就这样,谢谢你。谢谢你的解释。