You must differentiate what is known as "class attributes" and "attributes of an instance".
When you use the first code that you put, you are modifying that class attribute and, all the instances that you generate of that class will have the modifications that you have applied to it. In the event that you do something like this:
class Prueba():
def __init__(self):
self.atributo = {}
p = Prueba()
p.atributo['a'] = 1
print p.atributo
z = Prueba()
z.atributo
print z.atributo
you will be modifying attribute in each of the instances that you generate. Getting what you wanted:
{'a': 1}
{}