Ian Bicking wrote: > Jim Fulton wrote: > ... >>> Also decide whether your attributes should be private or not. >>> The difference between private and non-public is that the former >>> will never be useful for a derived class, while the latter might >>> be. Yes, you should design your classes with inheritence in >>> mind! >>> >>> Private attributes should have two leading underscores, no >>> trailing underscores. >>> >>> This conflicts with a previous suggestion "Generally, double leading >>> underscores should be used only to avoid name conflicts with >>> attributes in classes designed to be subclassed." Or perhaps >>> "private attributes" needs to be better explained. >> >> >> >> While, on some level, private variables seem attractive, I think that >> experience (for everyone I know) has shown them to be an attractive >> nuisance. I recommend discouraging them. > > > I really really hate double underscores, but I thought I'd let some > other people suggest stronger language first. I prefer explicit name > mangling for those cases where people justifiably use double underscores > now, e.g., self._MyPackage_variable instead of self.__variable, which I > think you also suggest below. Since it's all name mangling anyway, at > least explicit is better than implicit, especially when it's something > one could argue *should* look a little ugly. Perhaps all the > non-public/private language should be switched to just "private" (one > underscore) and "hidden from subclasses" (double underscore). I don't > like calling __ private at all, because it's not what people coming from > other languages think of as private.
Can we officially mark __private as a mistake. Perhaps: - Strongly discourage it in the style guide - Mark it in the language reference as a deprecated feature - Generate deprecation warnings when it is used? (This might be too much.) Jim -- Jim Fulton mailto:[EMAIL PROTECTED] Python Powered! CTO (540) 361-1714 http://www.python.org Zope Corporation http://www.zope.com http://www.zope.org _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com