FHEM Forum

Verschiedenes => Off-Topic => Thema gestartet von: Navigator am 16 November 2018, 22:39:08

Titel: Python Programmierung
Beitrag von: Navigator am 16 November 2018, 22:39:08
Gibt es hier auch Python Programmierer? Ich hätte eine Frage bezüglich des springens in eine locale Funktion. Ist dies überhaupt möglich?
Also so...

def func1():
    def localfunc():
        mach was

print "hello"
localfunc()

Ich habe ziemlich viele Funktionen local angelegt und dachte es wäre für die Übersichtlichkeit einfach besser. Leider bekomme ich jetzt immer mehr Probleme dabei mein Programm diesbezüglich zu erweitern.  >:(
Titel: Antw:Python Programmierung
Beitrag von: vbs am 16 November 2018, 23:20:09
Solche lokalen Funktionen macht man ja genau aus dem Grund, dass sie nicht im globalen Scope sichtbar sind. Mach doch ein separates Modul oder zumindest eine separate Klasse um deine Funktionen zu gliedern.
Titel: Antw:Python Programmierung
Beitrag von: Navigator am 17 November 2018, 11:22:37
Ja vielleicht war mir das Anfangs nicht so bewusst, ich dachte ich müsste niemals wieder diese Funktionen von ausserhalb nutzen zu müssen. Mein grundsätzliches Problem ist daß ich alles funktional programmiert habe und nicht in OOP was bei einer Tkinter GUI wahrscheinlich die bessere Wahl gewesen wäre. Ab wann ist es sinnvoll die def´s denn in separate Module auszugliedern? Ich bräuchte mal Lektüre wie man ein Programm richtig strukturiert, das wird leider in den gängigen Büchern nicht richtig vermittelt. Wenn ich mir anderen Quellcode oder die fhem.pl so ansehe bin ich immer wieder erstaunt wie aufgeräumt das ist. So bekomme ich das ohne Beistand einfach niemals hin.  :-\
Titel: Antw:Python Programmierung
Beitrag von: vbs am 17 November 2018, 11:58:05
Ein gut strukturiertes Programm zu schreiben ist nicht trivial und es gibt da wohl auch kein allgemeingültiges Rezept. Da spielen sehr viele Faktoren eine Rolle. Ein Modul sollte z.B. klar für eine Aufgabenstellung bzw. ein Themengebiet zuständig sein. Sobald in deinem Hauptmodul ein paar Funktionen zu dem Thema zusammen kommen, dann kann man drüber nachdenken, dass in ein Modul zu kapseln. Spielen eben auch viele andere Faktoren eine Rolle.
Das Ganze ist ja ein iterativer Prozess: d.h. du schreibst den Code nicht einmal und dann ist er in Stein gemeißelt, sondern dann überlegt sich ständig bei Codeerweiterungen, ob man dann eben auch schon vorhanden Teile neu strukturieren und umgliedern muss bzw. sollte. Nach und nach ergibt sich dann eine Struktur.
Titel: Antw:Python Programmierung
Beitrag von: matze88 am 25 Dezember 2018, 16:29:04
Hatte Python im Studium, würde dir auch eine separate Klasse empfehlen!