When you create class this way
* dict class version
```python
class A(object):
    pass
```
it creates class with dict and variables are placed in dict. This mean you can dynamically add variables to class.
```python
a = A()
a.b = 5
```
This is sometime good but it takes more memory and probably cpu time.

* slot class version
```python
class B(object):
    __slots__ = []
```
it creates class where place for variables are allocated by class subsystem (new type of class) directly in Class. This mean you *can't* dynamically add variables to class but it should take less memory and `I think` it takes less cpu time too.
```python
b = B()
b.b = 5
```
raise error.

docs: http://docs.python.org/release/2.5.2/ref/slots.html