On Sun, 03 Oct 2010 21:32:25 -0700, Dennis Lee Bieber wrote: > Well... then use the double __ prefix so your instance variables > have a class specific name... That IS what the __ are designed to do -- > ensure that the name, as used /in/ that class itself is unique, and not > referencing something from some unknown parent class.
Unfortunately name mangling doesn't *quite* do that. It is still possible to have name clashes. Imagine you inherit from a class Ham: from luncheon_meats import Ham class Spam(Ham): def __init__(self): self.__x = "yummy" You think you're safe, because the attribute __x is mangled to _Spam__x. But little do you know, Ham itself inherits from another class Meat, which inherits from Food, which inherits from FoodLikeProducts, which inherits from... Spam. Which also has an __x attribute. You now have a name clash. -- Steven -- http://mail.python.org/mailman/listinfo/python-list