我想问一个问题。
我制作了ClassName.py
,'list Variable'
就像number = []
一样。
我在列表中推送变量并在main函数中创建列表对象。
但现在我遇到了一个问题。
例如,我创建了一个object1
,它有列表变量。生成object2
后,它具有相同的变量object1
。 (object1
- >列表变量= [1,2,3,4,5]
,object2
- >列表变量= [1,2,3,4,5]
)
更详细,我想在'6'
列表中添加object2
。如果我在'6'
列表中添加object2
,object1
列表也添加了'6'
。
我不知道如何解决问题。
PLZ。提出建议
答案 0 :(得分:1)
那是因为你把变量放在了类级别。因此,所有实例共享这些变量的值
要解决此问题,请将__init__(self)
变量放在class YourClassName:
#Don't put it here!
def __init__(self):
self.your_list_name = [] #Put it here
中,如下所示:
const newContent = <Content>({
name: result.obj.name,
user: result.obj.user.
content_id: result.obj._id,
user_id: result.obj.user._id,
});
答案 1 :(得分:0)
您链接的存储库的代码如下所示。
class Foo:
a = 1
b = 2
def __init__(self):
...
这是创建名为a
和b
的类变量。如果您熟悉Java之类的语言,那么这是其他语言中最接近的静态变量。你想要的是一个实例变量,我们总是用self.
作为前缀,并在 __init__
中定义,而不是在类范围。
class Foo:
def __init__(self):
self.a = 1
self.b = 2