Fredrik Lundh wrote:
> [EMAIL PROTECTED] wrote:
>
> > Now, 'i' might have already been defined by A or by the call to
> > A.__init__() so if you define it without knowing that, you could be
> > changing the behavior of A's methods in unknown ways, which is
> > obviously a bad thing.
>
> http://docs.python.org/tut/node11.html#SECTION0011600000000000000000
>
> </F>
I see. Thanks for the link.
So putting two underscores in front of an instance variable (or any
identifier used inside the scope of a class statement) invokes a name
mangling mechanism ( __x becomes __classname_x internally)
so the following would not result in any conflicts
class A:
def __init__(self):
self.__i= 0
class B(A):
def __init__(self):
A.__init__(self)
self.__i= 1
Is it commonplace to use underscores when defining derived class
instance variables, or is this considered against the grain of python?
Chris Marshall
--
http://mail.python.org/mailman/listinfo/python-list