[Tutor] subclass not inheriting attributes?

Alex Hall mehgcap at gmail.com
Tue Jan 4 02:19:05 CET 2011


On 1/3/11, Wayne Werner <waynejwerner at gmail.com> wrote:
> On Mon, Jan 3, 2011 at 6:47 PM, Alex Hall <mehgcap at gmail.com> wrote:
>
>> Hi all,
>> I have a solitaire game in which I use a "Pile" class. This class is
>> meant to hold a bunch of cards, so I subclass it for the deck, the ace
>> stacks, and the seven main stacks, defining rules and methods for each
>> but also relying on the parent Pile class's methods and attributes.
>> However, I keep getting an error that an attribute in the parent does
>> not exist in the child. Below is a simplified example, but it gives me
>> the exact same error: child object has no attribute l.
>>
>> class parent(object):
>>  def __init__(self, l=None):
>>  if l is None: l=[]
Walter was right, and I changed it to
  if l is None: self.l=[]
  else: self.l=l
It did not get rid of the error, though.
>>
>> class child(parent):
>>  def __init__(self, *args, **kwords):
>>  super(parent, self).__init__(*args, **kwords)
>>  self.l.append(5)
>>
>> c=child()
>> print c.l
>>
>> Again, I get an error saying that 'child' object has no attribute 'l'.
>> Python 2.7 on win7x64. Thanks.
>
>
> Try
>
> p = parent()
> p.l
>
> Does that do what you expected?
Yes, I get [], just as I should. So the question is: if the parent
class is working, why would a class that inherits it not have the l
attribute?
>
> HTH,
> Wayne
>


-- 
Have a great day,
Alex (msg sent from GMail website)
mehgcap at gmail.com; http://www.facebook.com/mehgcap


More information about the Tutor mailing list