On Tue, Aug 18, 2009 at 3:16 PM, Serdar Tumgoren<[email protected]> wrote:
> On Tue, Aug 18, 2009 at 2:51 PM, Serdar Tumgoren<[email protected]> wrote:
>> Thanks to you both for the suggestions. I think I'll try the approach
>> below. But just one follow-up: should I be setting "self.tablename",
>> or is a static attribute ("tablename") the correct approach?
>>
> Looks like it's the former (i.e. "self.tablename")

It's as I wrote it. The atttribute is created in the class definition
(not in any method) as just "tablename". This creates an attribute of
the class, rather than of the instance. It is accessed as
"self.tablename". The attribute lookup rules will look first in the
instance, fail to find 'tablename', then look in the class and find
it.

Here is a complete example:

In [1]: class Base(object):
   ...:     def show_name(self):
   ...:         print self.name

In [2]: class Derived1(Base):
   ...:     name = 'Derived1'

In [3]: class Derived2(Base):
   ...:     name = 'Derived2'

In [4]: d1 = Derived1()

In [5]: d1.show_name()
Derived1

In [6]: d2 = Derived2()

In [7]: d2.show_name()
Derived2

Kent
_______________________________________________
Tutor maillist  -  [email protected]
http://mail.python.org/mailman/listinfo/tutor

Reply via email to