Dynamische Objekte und Attribute mit Verfallsdatum

  • Das sind sehr interessante Hinweise zur fortgeschrittenen Programmierung. Vielen Dank Dieter!


    Wer jetzt glaubt, dieses komplizierte, neumodische Zeugs brauche er als Maker nicht, liegt völlig falsch.

    Auf der einen Seite ist das gar nicht mehr so neu. Die Ursprünge von OOP liegen in den 1970er Jahren. Mit der Sprache Smalltalk wurden damals solche Konzepte erprobt. Trotzdem war das während meines Informatik - Studiums nur ein Randthema (ich habe 1984 abgeschlossen). Erstmals aktiv verwendet habe ich OOP erst einige Jahre danach. OOP ist in der heutigen Programmierung nicht mehr wegzudenken. Viele Projekte wäre ohne diese Konzepte gar nicht mehr durchführbar.


    Jeder Anfänger in der Arduino - Programmierung verwendet OOP, ohne dass er es merkt. Beinahe jede Library verwendet Objekte. Dasselbe gilt für die importierten Module in Python.


    Das Schreiben eigener Klassen erweitert die Möglichkeiten enorm, erfordert aber zusätzliche Kenntnisse. Python ist nicht gerade ein Musterbeispiel für eine lupenreine OOP - Umsetzung, dafür ist der Einstieg verhältnismässig einfach. Trotzdem ist das Konzept in Python so wichtig, dass auch wir im Micropython - Kurs nicht darum herumkommen.

    Mit dem Tutorial von Dieter kann man sich schon mal darauf vorbereiten.


    Gruss

    René

  • Wir leben bereits im Zeitalter der "Vierten industriellen Revolution", die unter anderem mit Industrie 4.0, Arbeit 4.0 und dem IoT, dem Internet der Dinge (und Dienste) umschrieben wird. Bei dem IoT wissen die Dinge, wer und was sie sind, nämlich Objekte, die wissen, wer und was sie sind, was sie können. Demzufolge verfügen Objekte über Eigenschaften, die man Attribute nennt, und über Methoden, die beschreiben, wie sich bestimmte Dinge bewerkstelligen lassen. Dabei handelt es sich programmiertechnisch bei den Methoden um Funktionen einer Klasse. Und bei einem Objekt handelt es sich programmiertechnisch um das Instanziieren einer Klasse, die dadurch zu einer Instanz wird. Demzufolge handelt es sich bei einem Objekt um eine Instanz einer zugeordneten Klasse.


    Beim Objekt orientierten Programmieren (OOP) lassen sich aber nicht nur statische Objekte programmieren, die sich unendlich oft und lange in einem Programm aufrufen, starten und ausführen lassen, sozusagen bis zum nächsten Stromausfall, sondern auch dynamische Objekte mit einem Verfallsdatum. Wenn es sein muss, auch mit einem kalendarischen oder zeitlich begrenzten Verfallsdatum im Sinne eines Zeitfensters.


    Dynamische Objekte und deren Eigenschaften (= Attribute) sind also vergänglich und lassen sich so programmieren, dass sie das Zeitliche segnen, wenn sie ihren Zweck erfüllt haben. Im Python-Programm gibt es das dynamische Objekt im Programmkode zwar noch, bei der Programmausführung aber nicht mehr, falls es im Programm nach der Zweckerfüllung mittels des Statements "del" (= engl. delete, d.h. löschen) zwischenzeitlich bereits gelöscht wurde.


    Programmiertechnisch ist dabei besonders interessant, wie man aus einer Variablen nebst Variableninhalt einer Klasse oder einer Methode ein entsprechendes Attribut eines Objektes generiert bzw. instanziiert. Nämlich mittels eines speziellen Konstrukts, Konstruktors bei dem eine (Klassen-) Variable einer (Objekt-) Variablen im Sinne eines (Objekt-) Attributs zugeordnet wird. Anschaulich, bildlich könnte man auch von einer Metamorphose, d.h. der Umwandlung einer einfachen (Klassen-) Variablen in ein Attribut eines Objektes, sprechen. Programmiertechnisch nennt man das, wie gesagt, Instanziierung z.B. mittels eines speziellen Konstruktors.


    Attribute (= Eigenschaften eines Objekts) können also etwas bewerkstelligen, weil sie sich aus Methoden einer Klasse ableiten bzw. sich auf diese gründen.


    Wer sich früher oder später für das OOP interessiert, kann sich mit meinem Tutorial in das Thema und das OOP einarbeiten:


    http://electronics.bplaced.net…3/index.html#Seitenanfang


    http://electronics.bplaced.net…/index.html#Verfallsdatum


    Viel Spaß beim Ausprobieren und Programmieren


    wünscht


    Dieter alias lernkick