我想要的是这种行为:
class a:
list = []
x = a()
y = a()
x.list.append(1)
y.list.append(2)
x.list.append(3)
y.list.append(4)
print(x.list) # prints [1, 3]
print(y.list) # prints [2, 4]
Run Code Online (Sandbox Code Playgroud)
当然,我打印时真正发生的是:
print(x.list) # prints [1, 2, 3, 4]
print(y.list) # prints [1, 2, 3, 4]
Run Code Online (Sandbox Code Playgroud)
显然,他们正在课堂上分享数据a.如何获得单独的实例来实现我想要的行为?
我在理解类/实例变量如何在Python中工作时遇到了问题.我不明白为什么当我尝试这个代码时,list变量似乎是一个类变量
class testClass():
list = []
def __init__(self):
self.list.append('thing')
p = testClass()
print p.list
f = testClass()
print f.list
Run Code Online (Sandbox Code Playgroud)
输出:
['thing']
['thing', 'thing']
Run Code Online (Sandbox Code Playgroud)
当我这样做时,它似乎是一个实例变量
class testClass():
def __init__(self):
self.list = []
self.list.append('thing')
p = testClass()
print p.list
f = testClass()
print f.list
Run Code Online (Sandbox Code Playgroud)
输出:
['thing']
['thing']
Run Code Online (Sandbox Code Playgroud)