I have the following class. I have tried many basic examples but I always get the same error.
class Factorial(object): def calculate(self, n): if n == 0: return 0 elif n == 1: return 1 else: return n * calculate(self, n - 1) if __name__ == "__main__": fact = Factorial() print fact.calculate(5)
When I run the code, it gives me the following error
line 8, in calculate NameError: global name 'calculate' is not defined
. It seems that the recursive call cannot be executed because the function is somehow undefined. Every time I have to incorporate recursion in class' methods, I get this error. Am I missing a piece of code? Your help is greatly appreciated.