class Rover:

    compass = ['N', 'E', 'S', 'W']

    def __init__(self, x=0, y=0, direction='N'):
        self.x = x
        self.y = y
        self.direction = direction

    @property
    def position(self):
        return self.x, self.y, self.direction

    @property
    def compass_index(self):
        return next(i for i in range(0, len(self.compass)) if self.compass[i] == self.direction)


    @property
    def axis(self):
        # 0 if pointing along x axis
        # 1 if pointing along y axis
        return (self.compass_index + 1) % 2

    def set_position(self, x=self.x, y=self.y, direction=self.direction):
        self.x = x
        self.y = y
        self.direction = direction

    def move(*args):
        for command in args:
            if command == 'F':
                # Move forward command
                pass
            else:
                pass

class Rover:

    compass = ['N', 'E', 'S', 'W']

    def __init__(self, x=0, y=0, direction='N'):
        self.x = x
        self.y = y
        self.direction = direction

    @property
    def position(self):
        return self.x, self.y, self.direction

    @property
    def compass_index(self):
        return next(i for i in range(0, len(self.compass)) if self.compass[i] == self.direction)


    @property
    def axis(self):
        # 0 if pointing along x axis
        # 1 if pointing along y axis
        return (self.compass_index + 1) % 2

    def set_position(self, x=None, y=None, direction=None):
          if x is not None:
              self.x = x

          if y is not None:
              self.y = y

          if direction is not None:
              self.direction = direction

    def move(self, *args):
        for command in args:
            if command == 'F':
                # Move forward command
                if self.compass_index < 2:
                    # Upper right quadrant, increasing x/y
                    pass
            else:
                pass

Add default arguments to set_position, add self argument to move function
Add default arguments to set_position, add self argument to move function

  class Rover:
  
      compass = ['N', 'E', 'S', 'W']
  
      def __init__(self, x=0, y=0, direction='N'):
          self.x = x
          self.y = y
          self.direction = direction
  
      @property
      def position(self):
          return self.x, self.y, self.direction
  
      @property
      def compass_index(self):
          return next(i for i in range(0, len(self.compass)) if self.compass[i] == self.direction)
  
  
      @property
      def axis(self):
          # 0 if pointing along x axis
          # 1 if pointing along y axis
          return (self.compass_index + 1) % 2
  
-     def set_position(self, x=self.x, y=self.y, direction=self.direction):
+     def set_position(self, x=None, y=None, direction=None):
+           if x is not None:
-         self.x = x
+               self.x = x
-         self.y = y
-         self.direction = direction
  
+           if y is not None:
+               self.y = y
+ 
+           if direction is not None:
+               self.direction = direction
+ 
-     def move(*args):
+     def move(self, *args):
          for command in args:
              if command == 'F':
                  # Move forward command
+                 if self.compass_index < 2:
+                     # Upper right quadrant, increasing x/y
-                 pass
+                     pass
              else:
                  pass
  
Add default arguments to set_position, add self argument to move function
## Code Before:
class Rover:

    compass = ['N', 'E', 'S', 'W']

    def __init__(self, x=0, y=0, direction='N'):
        self.x = x
        self.y = y
        self.direction = direction

    @property
    def position(self):
        return self.x, self.y, self.direction

    @property
    def compass_index(self):
        return next(i for i in range(0, len(self.compass)) if self.compass[i] == self.direction)


    @property
    def axis(self):
        # 0 if pointing along x axis
        # 1 if pointing along y axis
        return (self.compass_index + 1) % 2

    def set_position(self, x=self.x, y=self.y, direction=self.direction):
        self.x = x
        self.y = y
        self.direction = direction

    def move(*args):
        for command in args:
            if command == 'F':
                # Move forward command
                pass
            else:
                pass

## Instruction:
Add default arguments to set_position, add self argument to move function
## Code After:
class Rover:

    compass = ['N', 'E', 'S', 'W']

    def __init__(self, x=0, y=0, direction='N'):
        self.x = x
        self.y = y
        self.direction = direction

    @property
    def position(self):
        return self.x, self.y, self.direction

    @property
    def compass_index(self):
        return next(i for i in range(0, len(self.compass)) if self.compass[i] == self.direction)


    @property
    def axis(self):
        # 0 if pointing along x axis
        # 1 if pointing along y axis
        return (self.compass_index + 1) % 2

    def set_position(self, x=None, y=None, direction=None):
          if x is not None:
              self.x = x

          if y is not None:
              self.y = y

          if direction is not None:
              self.direction = direction

    def move(self, *args):
        for command in args:
            if command == 'F':
                # Move forward command
                if self.compass_index < 2:
                    # Upper right quadrant, increasing x/y
                    pass
            else:
                pass
