> On Apr 1, 2019, at 7:02 PM, Dave <dbola...@offilive.com> wrote:
> 
> As classes get more complex, it is good to call a function to do some of the 
> processing, and make the code easier to follow.  My question is how to do 
> that?  I've attached some silly code to illustrate the point.  The error is: 
> name 'validScale' is not defined.  Well, yes it is, but maybe not the correct 
> way.  Suggestions?
> 
> Dave,
> 
> class TempConverter():
>    """ Temperature Converter converts a tempeature from one scale
>        to another scale.  For example: 32, F, C will return
>        0 degrees C
>    """
> 
>    def __init__(self, temperature, scale, newScale):
>        self.temperature = temperature
>        self.scale = scale
>        self.newScale = newScale
> 
>    def validScale(self, scaleName):
>        if scaleName.upper == 'F' or 'C' or 'K':
>            return True
>        else:
>            return False
> 
>    def convertTemp(self):
>        """ Converts temperature scale if scales valid."""
>        if validScale(self.scale):
>            scaleValid = True
>        if validScale(self.newScale):
>            newScaleValid = True
>        if scaleValid and newScaleValid:
>            print('Scale converted')
>        else:
>            msg = "There was and error with the scales entered.\n"
>            msg = msg + "You entered: " + self.scale
>            msg = msg + ' ' 'and' + self.newScale
>            print(msg)
> 
> if __name__ == "__main__":
>    myclass = TempConverter(32, 'f', 'c')
>    myclass.convertTemp()
> -- 
> https://mail.python.org/mailman/listinfo/python-list
> 

To answer your specific question, you call a method in the same class by 
calling:      self.methodName   For example:  self.validScale

However, once you fix that, you wind find that the if statement in that method 
is not built correctly.

Also, since the variable self.scale is already set in your __init__ method, 
there is no need to pass it into your function.  You could just use self.scale 
inside that method.

Irv

-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to