Seite 1 von 1

Klassen frage..

Verfasst: Mittwoch 10. März 2021, 23:10
von Kalysto
Hallo zusammen,

Ich habe eine Frage zu der Class-Methode:
Und zwar ist es möglich zwischen zwei Klassen variablen abzurufen und zu setzten ?

Zur Zeit mache ich es mit global aber das soll man ja möglichst nicht verwenden...

Ich danke schon mal für die Nachricht:D

Re: Klassen frage..

Verfasst: Donnerstag 11. März 2021, 00:07
von __blackjack__
@Kalysto: Funktionen und Methoden bekommen was sie ausser Konstanten benötigen als Argument(e) übergeben. Ansonsten müsstest Du mal etwas konkreter werden.

Ach so: Du meinst wahrscheinlich auch Exemplare und nicht Klassen.

Re: Klassen frage..

Verfasst: Donnerstag 11. März 2021, 05:44
von Kalysto
Also genau meinte ich ich erzeuge mir eine Variable in meiner ersten Klasse.
Und benutze reportlab um mir pdfs zu erzeugen diese hat nochmals eine eigene Klasse worin ich einen variable der vorherigen Klasse bräuchte.

Wenn ich’s nicht richtig erklärt haben sollte mache ich später mal noch ein bsp dazu.

Re: Klassen frage..

Verfasst: Donnerstag 11. März 2021, 18:04
von Kalysto
Hier mal noch ein bsp. dazu was ich genau meinte:

Code: Alles auswählen

class get_data_from_mariadb():
ist meine main class.
Hierin erstelle ich mir meine SQL ausgaben und Erstelle mir eine PDF:

Code: Alles auswählen

pdf.build(elems, onFirstPage=myFirstPage, onLaterPages=myLaterPages, canvasmaker=NumberedCanvas)
die nächste class: NumberedCanvas (Fügt seitenanzahlen hinzu)

Code: Alles auswählen

class NumberedCanvas(Canvas):
benötigt nun von der Class get_data_from_mariadb eine Variable...

Code: Alles auswählen

doc.width
mir ist spontan nur global eingafallen um dies zu lösen und da wäre meine Frage wie man das am "richtigsten" anstellen würde ?

Re: Klassen frage..

Verfasst: Donnerstag 11. März 2021, 22:13
von __blackjack__
@Kalysto: Das erste ist weder von der Schreibweise den Namens noch von dem was da inhaltlich steht eine Klasse. Das sieht sehr nach einer Funktion aus.

Ansonsten bleibt die Antwort die gleiche: die Funktion oder Methode muss da irgendwie über die Argumente ran kommen.

Re: Klassen frage..

Verfasst: Donnerstag 11. März 2021, 22:23
von Kalysto
Ja das erste schon...
Aber die zweite nicht

Code: Alles auswählen

 pdf.build(elems, onFirstPage=myFirstPage, onLaterPages=myLaterPages, canvasmaker=NumberedCanvas) 
Ich kann ja hier: canvasmaker=NumberedCanvas keine Argumente angeben oder geht das doch irgend wie ?

Denn sobald ich sowas teste:

Code: Alles auswählen

 pdf.build(elems, onFirstPage=myFirstPage, onLaterPages=myLaterPages, canvasmaker=NumberedCanvas(argument)) 
Gibt es eine Fehlermeldung..