I have the class

```
>>> class Foo:
...     ls=[]
...
>>> f1=Foo()
>>> f2=Foo()
>>> f1.ls.append(1)
>>> f1.ls.append(2)
>>> print f1.ls
[1, 2]
>>> print f2.ls   
[1, 2]                #I expect its result is empty [], why
>>> f2.ls=[]
>>> print f1.ls       
[1, 2]
>>> print f2.ls
[]
           # If f1.ls and f2.ls refer to the same list, since i modify f2.ls,
           # the f1.ls is empty ,too. Does the statement 'f2.ls=[]' add new attribute
           # to f2. Where do f1.ls and f2.ls refer and how it happens

```

I want to use one class and declare many variables. If I hope all variables have different lists. Do I do like this

```
class Foo:
    pass
f1=Foo()
f2=oo()
f1.ls=[]
f2.ls=[]
do others

```

Are there some more simple and better methods.
Forgive my ignorant for python class. Thanks in advance