Python Programmierung

Begonnen von Navigator, 16 November 2018, 22:39:08

Vorheriges Thema - Nächstes Thema

Navigator

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.  >:(

vbs

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.

Navigator

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.  :-\

vbs

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.

matze88

Hatte Python im Studium, würde dir auch eine separate Klasse empfehlen!