[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