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