我有一个文件对我传递给它的对象运行一些分析
类似的东西:
test.py
:
class Test:
var_array = []
def add_var(self, new_var):
self.var_array.append(new_var)
def run(test):
for var in test.var_array:
print var
我有另一个文件,我在其中定义了我想要处理的信息
test2.py
:
import os
import sys
TEST_DIR = os.path.dirname(os.path.abspath(__file__))
if TEST_DIR not in sys.path:
sys.path.append(TEST_DIR)
from test import *
test = Test()
test.add_var('foo')
run(test)
所以,如果我多次运行
In [1]: %run test2.py
foo
In [2]: %run test2.py
foo
foo
In [3]: %run test2.py
foo
foo
foo
我做错了什么?不应该test = Test()
创建对象的新实例吗?
答案 0 :(得分:10)
在下面的代码中,var_array
是类变量(由Test
个对象的所有实例共享):
class Test:
var_array = []
要定义实例变量,您应该在__init__
方法中对其进行初始化,如下所示:
class Test:
def __init__(self):
self.var_array = []