Alejandro wrote: > I have created a class: > > class document: > > titre = '' > haveWords = set() > > def __init__(self, string): > > self.titre = string > > ######### > > doc1 = document('doc1') > doc2 = document('doc2') > > doc1.haveWords.add(1) > doc2.haveWords.add(2) > > > print doc1.haveWords > > # i get set([1, 2]) > > > doc1 and doc are sharing attribute haveWords! > Why ??? there's a way to assign every objetc "document" a different > "set" > Of course. Try this:
class document: def __init__(self, string): self.titre = string self.haveWords = set() Each instance creation will call __init__ with the instance accessible through self, and that code will create two instance specific attributes. Don't use so called class level attributes (as in your example) unless you *want* sharing between all instances of a class. Gary Herron -- http://mail.python.org/mailman/listinfo/python-list