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

Reply via email to