So I'm having a problem with a larger piece of code where I'm getting an error message when I'm calling a function inside of another function that is inside of a class. In the code:
#Test program to solve problems.
class Foo(object):
def __init__(self, number):
self.number = number
def run(self):
print "I will now square your number"
print "Your number squared is: "
print self.calculate()
#This squares the number
def calculate(self):
return self.number**2
if __name__ == "__main__":
test = Foo(input("Choose a number: "))
print test.run()
I raise an "AttributeError: Foo
has no attribute calculate
", but I don't understand why? Am I calling calculate
wrong to throw this error?
EDIT
So I know that if I change the indentation or calculate
it works, but I wanna know is there anyway to get it working as it currently is with calculate
indented in run
or do python classes not work that way.