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__. The constructor is called when you create a new object of the class. It can be said that the new object has a type of its class.
boo.py class Boo: __init__(self): print('boo!')Now let's enter the Python REPL and use our new class:
/pyboard> repl Entering REPL. Use Control-X to exit. > MicroPython v1.25.0 on 2025-04-15; Raspberry Pi Pico with RP2040 Type "help()" for more information. >>> >>> from boo import Boo >>> b = Boo() boo! >>> >>> print(b) <Boo object at 20005f50> >>> >>> print(type(b)) <class 'Boo'> >>>All special methods in Python are surrounded by double underscores. (There are more of these but we'll get to them later.)
motor_controller.py 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.') motor.py 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 main.py from motor_controller import MotorController try: motor_ctrl = MotorController() except Exception as ex: print('an error occurred: {}'.format(ex)) finally: print('complete.')