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
- Erweitere die Klasse „Person“ um eine Methode, mit der der Name geändert werden kann.
- Ü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:
- MicroPython: Funktionen
- MicroPython: Module
- MicroPython: Sprachstruktur
- MicroPython: Parallele Verarbeitung
- Raspberry Pi Pico: MicroPython
Teilen:
Hardware-nahes Programmieren mit dem Raspberry Pi Pico und MicroPython
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
Online-Workshop: 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.
Für Ihre Fragen zu unseren Online-Workshops mit dem Raspberry Pi Pico besuchen Sie unseren PicoTalk (Online-Meeting). (Headset empfohlen)