!!! Classes and Methods
%%info
This is __Exercise 4__ of the [Micro Python Tutorial].
%%
We can define __classes__ in Python. Classes are defined globally, within the file/module as they begin in column 0.
Within a class its functions are called __methods__. Unlike functions, methods are defined within the scope of the class and are therefore indented within the class's block.
A class has a constructor, a special method named {{{__init__}}}. All special methods in Python are surrounded by double underscores. (There are more of these but we'll get to them later.)
%%filename motor_controller.py %%
%%python {{{
from motor import Motor
class MotorController:
    def __init__(self):
      self.port_forward_motor = Motor('pfwd')
      self.stbd_forward_motor = Motor('sfwd')
      print('motor controller ready.')
}}}
%%
%%filename motor.py %%
%%python {{{
class Motor:
    def __init__(self, name):
        self.motor_name = name
        self.motor_speed = 0
        print('motor {} ready.'.format(self.motor_name))
        
    def set_speed(self, speed):
        self.motor_speed = speed
        print("speed: {}".format(speed))
    def get_speed(self):
        return self.motor_speed
}}}
%%
%%filename main.py %%
%%python {{{
from motor_controller import MotorController
try:
    motor_ctrl = MotorController()
except Exception as ex:
    print('an error occurred: {}'.format(ex))
finally:
    print('complete.')
}}}
%%
----
__Previous:__ [MicroPython Tutorial Exercise 3|MicroPythonTutorialExercise03]: functions \\
__Next:__ [MicroPython Tutorial Exercise 5|MicroPythonTutorialExercise05]: using classes