MicroPython: Klassen

Klassen in MicroPython sind eine Möglichkeit, Code zu organisieren und Objekte zu erstellen, die auf Daten und Methoden zugreifen können. Eine Klasse definiert einen Bauplan für ein Objekt und enthält Attribute (Daten) und Methoden (Funktionen), die das Verhalten des Objekts definieren.

Klassen bieten viele Vorteile bei der Entwicklung von MicroPython-Programmen. Sie ermöglichen eine saubere und organisierte Struktur, indem sie den Code in verwandte Blöcke gruppieren, die leicht zu verstehen und zu warten sind. Klassen ermöglichen auch die Erstellung von Objekten, die Daten und Methoden enthalten und auf einfache Weise über Instanzen erstellt und aufgerufen werden können.

Klasse mit Attribute und Methoden definieren

Eine Klasse in MicroPython wird definiert, indem das Schlüsselwort class, der Name der Klasse und hinter dem Doppelpunkt der eingerückte Code-Block, der die Attribute und Methoden enthält, angegeben werden.

class Person(object):
    # Klassenattribut, gilt für alle Instanzen
    art = "Homo Sapiens"
		
		# Einfacher Konstruktor der Klasse
		def __init__(self, name, gender):
        # Zuweisung der Argumente zu Attributen der Instanz
        self.name = name
        self.gender = gender
    
    # Instanzmethode, mit self als erstes Argument
    def sagt(self, msg):
        return "{name}: {message}".format(name=self.name, message=msg)
    
    # Instanzmethode, mit self als erstes Argument
    def getName(self):
        return self.name
    
    # Instanzmethode, mit self als erstes Argument
    def getSex(self):
        return self.gender
    
    # Instanzmethode
    def setSex(self, gender):
        self.gender = gender
    
    # Klassenmethode, wird von allen Instanzen geteilt
    @classmethod
    def getArt(cls):
        return cls.art
    
    # Statische Methode, wird ohne Instanz aufgerufen
    @staticmethod
    def hallo():
        return "Hallo"

Diese Klasse ist alleine wenig sinnvoll. Man muss sie noch in einen Programmcode integrieren, Objekte erstellen und Methoden aufrufen.

Klasse benützen

Die Klasse zu benützen bedeutet, ein Objekt zu erstellen, was bedeutet eine Instanz von dieser Klasse zu erstellen. Gemeint ist, dass die Klasse mehrfach benützt werden kann, indem die Klasse ein Objekt und damit eine eigene Instanz dargestellt. Das Objekt ist eine Bezeichnung oder ein Name, mit dem man die Instanz der Klasse identifizieren und ansprechen kann. Hier kommt der Vorteil von Klassen zum Tragen, dass mehrere Instanzen erzeugt werden und parallel existieren können.

Ergänze den Programmcode mit der Klasse oben um die folgenden Zeilen.

# Zwei unterschiedliche Instanzen einer Klasse erstellen
herr = Person(name="Peter", gender="Mann")
dame = Person("Beate", "Frau")
# Klassenmethoden der Instand "herr" aufrufen print(herr.sagt("Guten Tag")) print('Geschlecht von', herr.getName(), ':', herr.getSex()) # Gemeinsames Attribut anzeigen print('Art:', herr.getArt()) print() # Klassenmethoden der Instand "dame" aufrufen print(dame.sagt("Hallo")) print('Geschlecht von', dame.getName(), ':', dame.getSex()) # Gemeinsames Attribut anzeigen print('Art:', dame.getArt()) print() # Attribut von Instanz "dame" ändern dame.setSex("Divers") print('Neues Geschlecht von', dame.getName(), ':', dame.getSex()) print() # Gemeinsames Attribut ändern Person.art = "Mensch" print('Art:', herr.getArt()) print('Art:', dame.getArt()) print() # Aufruf einer statischen Methode print(Person.hallo())

Was ist mit Objekt gemeint?

Im Zusammenhang mit Klassen bezieht sich der Begriff "Objekt" auf eine spezifische Instanz der Klasse, die aus dem Klassenbauplan erstellt wurde. Ein Objekt ist eine konkrete Entität, die aus der Klasse hervorgeht und einen spezifischen Zustand und Verhalten hat.

Um ein Objekt aus einer Klasse zu erstellen, wird in der Regel eine Instanz der Klasse erstellt. Dies geschieht durch Verwendung des Klassenkonstruktors und der Zuweisung an eine Variable. Das Objekt der Klasse „Person“ wird wie folgt erstellt:

dame = Person("Beate", "Frau")

Das neu erstellte Objekt „dame“ ist nun eine Instanz der Klasse „Person“ und verfügt über alle Methoden und Attribute, die in der Klasse definiert wurden. Im Allgemeinen können mehrere Objekte aus derselben Klasse erstellt werden, und jedes Objekt kann seinen eigenen Zustand haben.

Erweiterungen

  1. Erweitere die Klasse „Person“ um eine Methode, mit der der Name geändert werden kann.
  2. Überlege Dir ein weiteres Attribut und ergänze Methoden zum Ausgeben und Schreiben diese neuen Attributs.

Klasse als Modul

Klassen eignen sich sehr gut zum Auslagern in eine eigene Datei, um den Hauptteil des Programmcodes kürzer und übersichtlicher zu halten. Python und MicroPython sehen vor, nicht-integrierte Funktionen als Modul aus einer separaten Datei nachzuladen.

Weitere verwandte Themen:

Frag Elektronik-Kompendium.de

Hardware-nahes Programmieren mit dem Raspberry Pi Pico und MicroPython

Elektronik-Set Pico Edition

Das Elektronik-Set Pico Edition ist ein Bauteile-Sortiment mit Anleitung zum Experimentieren und Programmieren mit MicroPython.

  • LED: Einschalten, ausschalten, blinken und Helligkeit steuern
  • Taster: Entprellen und Zustände anzeigen
  • LED mit Taster einschalten und ausschalten
  • Ampel- und Lauflicht-Steuerung
  • Elektronischer Würfel
  • Eigene Steuerungen programmieren

Elektronik-Set jetzt bestellen Online-Workshop buchen

Online-Workshop: Programmieren mit dem Raspberry Pi Pico

Programmieren mit dem Raspberry Pi Pico

Gemeinsam mit anderen und unter Anleitung experimentieren? Wir bieten unterschiedliche Online-Workshops zum Raspberry Pi Pico und MicroPython an. Einführung in die Programmierung, Sensoren programmieren und kalibrieren, sowie Internet of Things und Smart Home über WLAN und MQTT.

Online-Workshop buchen

Besuchen Sie unser fast monatlich stattfindendes Online-Meeting PicoTalk und lernen Sie uns kennen. Die Teilnahme ist kostenfrei.

Termine und Newsletter-Anmeldung

 

Elektronik-Sets für das Hardware-nahe Programmieren