Re: variable naming query
On 2007-07-12, Ben Finney <[EMAIL PROTECTED]> wrote: >> self.__myvariable > > Indicates to the reader that the attribute '__myvariable' is > not available by that name outside the object, and name > mangling is automatically done to discourage its use from > outside the object. >From _Python Reference Manual (2.3.2) Reserved Classes of Identifiers: __* Class-private names. Names in this category, when used within the context of a class definition, are re-written to use a mangled form to help avoid name clashes between ``private'' attributes of base and derived classes. Further, from the _Python Tutorial (9.6) Private Variables_: (Buglet: derivation of a class with the same name as the base class makes use of private variables of the base class possible.) In other words, it's a misfeature that's best avoided. -- Neil Cerutti -- http://mail.python.org/mailman/listinfo/python-list
Re: variable naming query
loial <[EMAIL PROTECTED]> writes: > What is the difference between > > self.myvariable Indicates to the reader that the attribute 'myvariable' is available for use as part of the interface of the object. Prefer this style unless you have good reason in a particular case to do otherwise. > self._myvariable Indicates to the reader that the attribute '_myvariable' should not be used as part of the interface to the object. > self.__myvariable Indicates to the reader that the attribute '__myvariable' is not available by that name outside the object, and name mangling is automatically done to discourage its use from outside the object. > and when should I use each of them? Use each of them to indicate the above conditions where appropriate. Note that none of them will change the nature of the attribute, and Python will allow use of any of them by the correct name. There is no such thing as "limited-access" attributes in Python; we rely on the maxim that "we're all consenting adults here". If an attribute exists in the current scope, it is available for any use regardless of what name you give it. -- \ "I wish there was a knob on the TV to turn up the intelligence. | `\ There's a knob called 'brightness' but it doesn't work." -- | _o__) Eugene P. Gallagher | Ben Finney -- http://mail.python.org/mailman/listinfo/python-list
Re: variable naming query
On Thu, 12 Jul 2007 10:33:03 -, loial <[EMAIL PROTECTED]> wrote: >I'ma a newbie python user and would like clarification on variable >naming conventions. > >What is the difference between > >self.myvariable This is the convention for public attributes. >self._myvariable This is the convention for private attributes. >self.__myvariable This causes the name to be mangled in an inconvenient way by the runtime. You probably /don't/ want to name your variables like this, since the consequence is primarily that the result is harder to use. Jean-Paul -- http://mail.python.org/mailman/listinfo/python-list