Can't refer to base class attribute?

Marc 'BlackJack' Rintsch bj_666 at gmx.net
Tue Oct 23 15:15:47 EDT 2007


On Tue, 23 Oct 2007 18:54:06 +0000, mrstephengross wrote:

> I've got a Base class with an attribute "foo" (of type Foo), and a
> Derived class (derived from Base). In Derived's constructor, I try to
> refer to Base.foo, but python complains:
>   AttributeError: class Base has no attribute 'foo'

Because the class `Base` doesn't have an attribute `foo`.  Just believe
the error message.  :-)

> Any ideas? (code below)
> 
> === CODE ===
> #!/usr/bin/python
> 
> class Foo:
>   def __init__ (self):
>     self.x = 3
> 
> class Base:
>   def __init__ (self):
>     self.foo = Foo()


`Base` has no `foo` attribute but *instances* of `Base` have.

> class Derived(Base):
>   def __init__(self):
>     Base.__init__(self)
>     Base.foo.x = 5

Instances of `Derived` have a `foo` attribute inherited from `Base`. So
the last line should be ``self.foo.x = 5``.

Ciao,
	Marc 'BlackJack' Rintsch



More information about the Python-list mailing list