Keyona Parker
Keyona Parker

Reputation: 11

Python: Unexpected identifier when calling method of class

I would like to write a class Calculator including:

This is my attempt, but apparently it's not correct.

class Calculator: 
    def add(x,y): 
        return x+ y 
    def subtract(x,y): 
        return x - y 
    def multiply(x,y): 
        return x * y 
    def divide(x,y): 
        if y==0: 
            return "You can t divide by zero!" 
        else: 
            return x/y 

From the results, I get unexpected identifier x and y.

Upvotes: 1

Views: 10327

Answers (3)

Bikesh seth
Bikesh seth

Reputation: 1

class Calculator:


   def add(self,num1,num2):
    print(num1+num2)

 
 def subtract(self,num1,num2):
    print(num1-num2)
    
 
 def multiply(self,num1,num2):
    print(num1*num2)


 def divide(self,num1,num2):
    print(num1 / num2)



object1 = Calculator()
object2 = Calculator()
object3 = Calculator()
object4 = Calculator()

object1.add(100,200)
object2.subtract(50,30)
object3.multiply(10,3)
object4.divide(250,5)

Upvotes: -2

Vikings Dood
Vikings Dood

Reputation: 51

This answer will be accepted by the programming lab system:

class Calculator:

   def add(self, x, y):
       self.x = x
       self.y = y
       a = self.x + self.y
       return a
    
   def subtract(self, x, y):
       self.x = x
       self.y = y
       a = self.x - self.y
       return a
    

   def multiply(self, x, y):
       self.x = x
       self.y = y
       a = self.x * self.y
       return a
    

   def divide(self, x, y):      
       self.x = x
       self.y = y
        
       if (y == 0):
           a = "You can't divide by zero!"
       else:
           a = self.x / self.y  
    
       return a

There are more simple soutions but this will be accepted by the programming lab editor. It can be a bit picky at times.

Upvotes: 0

kabanus
kabanus

Reputation: 25895

Object methods in python need to explicitly define the 'this' parameter you know from 'C', or the argument referring to the object itself. In Python it is usually called 'self'. For example:

class Calc:
    def add(self,x,y): return x+y

Since all your methods do not really need self, and the calculator is more of a container of methods, you can define them as class methods, so Calc.add(3,4) works without creating an object:

class Calc:
    @staticmethod
    def add(x,y): return x+y

If you're new to python please note indentation is very important as well.

Upvotes: 3

Related Questions