By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
464,728 Members | 1,072 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 464,728 IT Pros & Developers. It's quick & easy.

Re: Correct Attribute Assignment Methodology?

P: n/a


Tim Cook wrote:
Say I have these classes:

class Parent(object):
"""Parent is abstract"""
a=None
def showA():
return self.a

class Child(Parent):
"""inherits a and showA from Parent"""

def __init__(self,a,b):
self.a=a
self.b=b

def showAB():
return self.a,self.b
class GrandChild(Child):
"""inherits all of the above"""

def __init__(self,a,b,c):
self.a=a
self.b=b
"""should this be Child.__init__(a,b)? or Child.__init__(b)?""
Child.__init__(self,a,b) # requires all three params.
"""if so; why? if not why not?"""
In this simple case, I would probably do what you did. But a reason to
call the baseclass init would be to not repeat yourself and keep the
derived class in sync. Suppose, for instance, Child.__init__ had
'self.frob = math.sin(a) + math.cos(b) - math.sqrt(a*a+b*b)', and then
you realize that the formula needs to be changed. Better to have it in
one place.
self.c=c

Thanks for answering these very basic questions but I am not certain
about the correct way. I know that in Python, assignment in the
GrandChild class will work but is that correct?
Jul 30 '08 #1
Share this question for a faster answer!
Share on Google+

This discussion thread is closed

Replies have been disabled for this discussion.