Re: Correct Attribute Assignment Methodology?

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Terry Reedy

    Re: Correct Attribute Assignment Methodology?



    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(Chil d):
    """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?
Working...