self updaten, mit Werten aus einer anderen Class

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Nobuddy
User
Beiträge: 994
Registriert: Montag 30. Januar 2012, 16:38

Hallo zusammen,

ob die Überschrift den Kern meines Hilfesuchens zutrifft ...., daher versuche ich das Ganze kurz zu umreisen.

Von meinem Hauptmodul aus, möchte ich self an andere Module weitergeben.
Diese sollen dann den Rückgabewert self (aktualisiert, erweitert) wieder zurückgeben.

Ich habe mich da schon versucht durchzulesen, bin aber nicht auf das was ich suche gestoßen.
Ich versuche daher an einem Beispiel, das zu verdeutlichen (was so nicht funktioniert).

Code: Alles auswählen

class DocumentProcessing(object):
    
    def __init__(self, master):
        self = master
    
    def my_function(self):
        wert = self.wert
Hoffe, dass Ihr mir da den richtigen Weg zeigen könnt!

Grüße Nobuddy
__deets__
User
Beiträge: 14529
Registriert: Mittwoch 14. Oktober 2015, 14:29

Mir ist nicht klar, was du versuchst. Du kannst selbstverstaendlich problemlos self als Argument an Funktionen uebergeben:

Code: Alles auswählen

def foo(ein_ding):
       ein_ding.mach_was()

class EinDing():
      def mach_was(self):
             ...

def bar():
        lalala = EinDing()
        foo(lalala)
Aber dein Code oben sieht nicht so aus wie das ,was du da vor hast. Das sieht so aus, als ob du stattdessen nach Vererbung suchst, bei der du eine bestehende Klasse erweiterst.
Nobuddy
User
Beiträge: 994
Registriert: Montag 30. Januar 2012, 16:38

Mein Code, sollte nur als abstrakte Darstellung dienen.
Das was Du mit der Vererbung geschrieben hast, sollte das Richtige sein.

Vielleicht könntest Du mir anhand eines einfachen Konstruktes, mir das darstellen?
Ich drehe micht sonst irgendwie im Kreis...
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

@Nobuddy: kannst Du Dein Problem beschreiben; nicht wie Du denkst, dass es zu lösen wäre.
Vererbung wird in Python wirklich selten gebraucht. Besteht wirklich eine »ist ein«-Beziehung oder doch nur eine »hat ein«-Beziehung?
Nobuddy
User
Beiträge: 994
Registriert: Montag 30. Januar 2012, 16:38

Das self, das ich von meinem Hauptmodul aus an andere Module übergebe, soll von den anderen Modulen verwendet, aktualisiert und erweitert werden. Das self des Hauptmodul, soll master sein.
Ich möchte dabei, den Aufwand im "def __init__(self, master)" reduzieren und master als self in den anderen Modulen weiterführen.
Hoffe dies einigermaßen verständlich beschrieben zu haben.
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

Es ist schwierig zu verstehen, was Du eigentlich willst, wenn Du davon sprichst, etwas von einem Modul ins andere zu übergeben. Module sind nur Sammlungen von Funktions- und Klassendefinitionen; man kann etwas an eine Funktion übergeben, aber nicht an ein Modul.

Auch ist es seltsam, eine Instanz erweitern zu wollen, denn die Instanz wird durch ihre Klasse definiert.

Was willst Du also erreichen, beschreib es mal ohne Begriffe, die man falsch verstehen könnte.
Nobuddy
User
Beiträge: 994
Registriert: Montag 30. Januar 2012, 16:38

Du hast mir mal fürs erste weitergeholfen, werde mal in aller Ruhe mein Konzept überdenken.
Melde mich wieder.

Grüße Nobuddy
Nobuddy
User
Beiträge: 994
Registriert: Montag 30. Januar 2012, 16:38

Melde mich zurück und versuche mein Projekt kurz zu erklären.

Bisher habe ich ein Modul, das für Vorgänge wie z.B. Bestellung, Wareneingang, Rechnung usw., Daten aufbereitet und dies in einer tk-GUI ausgegeben wird.

Die GUI hat einen Header, der die notwendigen Infos zu dem Vorgang ausgibt.
Weiter kommt eine Tabelle für die Daten mit Label dazu.
Eine Infozeile zur Eingabe wichtiger Details zum Vorgang.
Ein Positionslabel, der die Anzahl der ausgewählten Positionen mit Summenwert ausgibt.
In der gleichen Label, sind rechts die Buttons angebracht, die mit bestimmten Aufgaben versehen sind.

Beim Abschluss des Vorganges, werden die Daten aktualisiert und eine PDF-Datei erstellt.

Nun habe ich den Entschluss gefasst das Ganze in verschiedene Module mit bestimmten Aufgabenbereich aufzuteilen.
Modul_1, Datenaufbereitung für den gewählten Vorgang.
Modul_2, Erstellung der GUI.
Modul_3, GUI-Kontrolling mit Größenanpassung an verschiedene Displygrößen, Steuerung x und y im Tabellenbereich, Zentrierung auf dem Display.
Modul_4, Tabellen-Datenverarbeitung bei Änderung in der Tabelle.
Modul_5, Header-Datenverarbeitung bei Änderung im Header.
Modul_6, Hilfs-Tools, für Modul_3, Modul_4, Modul_5

Das alte Modul wird solange verwendet, bis das neue Konzept diese Aufgabe übernehmen kann.
Die neuen Module habe ich bereits erstellt und dabei ziemlich ausgenistet.
Jetzt bin ich dabei Fehler zu beheben.
Antworten