On 04/02/2013 09:27 AM, Fabian PyDEV wrote:
Hi All,

I have a question.

Let says I have the following two classes:

class Base(object):
        __mylist__ = ["value1", "value2"]

        def somemethod(self):
                pass


class Derived(Base):
        __mylist__ = ["value3", "value4"]

        def anothermethod(self):
                pass
        
        


what I would like to accomplish is that the class Derived has the member __mylist__ extended or merged as 
["value1", "value2", "value3", "value4"].

Is there anyway I could accomplish this?

I was thinking on accomplishing this as follows:


class Derived(Base):
        __mylist__ = Base.__mylist__ + ["value3", "value4"]

        def anothermethod(self):
                pass


Is there a better way? Perhaps a decorator?


This is already done the best (clearest) way I know of.

However, I'd like to point out two things:
1) they're not called class members, but class attributes. You have class attributes and instance attributes.

2) dunder methods should only be used to fulfill special methods defined by the language. If it's a public attribute, just leave off the underscores entirely. And if it's private, put just one leading underscore.



--
DaveA
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to