[Zope] Re: Problem with hasattr() and Zope 2.8.1
Paul Winkler
pw_lists at slinkp.com
Wed Oct 5 15:16:31 EDT 2005
Doyon, Jean-Francois said:
> But then, why does this code work ok?
>
> class CrosslingualSupport:
> """ Mix-in class to provide content objects with support for
> cross-lingual properties when needed.
> """
>
> def clearCrosslingualAttributes(self, lang):
> """ For a given language, remove all internal attributes related
> to
> it. """
> for propertyname in [ propname for propname in
> self.__multilingualproperties__.keys() if
> self.__multilingualproperties__[propname][1] == True ]:
> attname = '__' + propertyname + '_' + lang
> if hasattr(self, attname): delattr(self, attname)
>
> As you see on the last line, I'm doing a hasattr() on an attribute who's
> name starts with 2 underscores, and it works fine in this case (has been
> for weeks, if not months).
But do those names *end* with underscores as well?
If so, Python doesn't mangle those names.
See: http://docs.python.org/ref/atom-identifiers.html
Also, what do you intend to communicate by naming
__multilingualproperties__ with the leading and trailing underscores?
Might want to read the style guide at
http://www.python.org/peps/pep-0008.html
if you haven't lately... see the "Naming Conventions" section.
--
Paul Winkler
http://www.slinkp.com
More information about the Zope
mailing list