> 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