Hallo!
Möchte ein Module a'la matplotlib.pyplot erstellen.
Beim Debuggen sehe ich, dass Code schon beim Import ausgeführt wird.
Könnt ihr mir verraten, wie man eine Funktion ermächtigt, dass sie schon
beim Import ausgeführt wird?
Danke für eure Antworten
Erhy
Module Funktion, die schon beim import aufgerufen wird
Du kannst ja immer einfach Code auf modulebene schreiben. Und Dir den Source von matplotlib anschauen.
Nur machen sollte man das eher nicht. Code der implizit ausgeführt wird macht oft Ärger. Warum glaubst du das machen zu müssen?
Nur machen sollte man das eher nicht. Code der implizit ausgeführt wird macht oft Ärger. Warum glaubst du das machen zu müssen?
- __blackjack__
- User
- Beiträge: 14047
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@Erhy: Wie __deets__ schon schrieb sollte man so etwas nicht machen. `pyplot` macht das ja im Grunde auch nur so unsauber mit globalem Zustand weil Benutzer von Matlab & Co das so gewohnt sind in der interaktiven Umgebung.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
__deets__ hat es doch schon erklärt. Das passiert automatisch. Man muss in Python extra Schritte unternehmen, damit Code auf globaler Ebene nicht ausgeführt wird (das bekannte "if __name__ == '__main__': ..." -Konstrukt). So etwas wie 'BEGIN { ... }' in AWK oder Perl gibt es in Python nicht.Erhy hat geschrieben: Sonntag 29. September 2019, 16:04 mein Modul soll ähnlich wie pyplot sein, da die Anwender es so gewohnt sind.
Irgendwann werde ich es schon herausbekommen, wo man die initiale Funktion einträgt
oder wie sie zu definieren ist.
Erhy
und wie soll ich es anlegen?
Die Plot-Aufrufe sollen in einer Anwendung, die vielleicht schon besteht,
nach belieben einfügbar sein, ähnlich einer Log-Funktion.
Könnte natürlich auch vorschlagen, dass initial einer globalen Variablen die Instanz einer zentralen Klasse zugeordnet wird
und jeder Aufruf einer Methode dieser Klasse entspricht.
Danke für eure Design-Tipps
Erhy
Die Plot-Aufrufe sollen in einer Anwendung, die vielleicht schon besteht,
nach belieben einfügbar sein, ähnlich einer Log-Funktion.
Könnte natürlich auch vorschlagen, dass initial einer globalen Variablen die Instanz einer zentralen Klasse zugeordnet wird
und jeder Aufruf einer Methode dieser Klasse entspricht.
Danke für eure Design-Tipps
Erhy
- __blackjack__
- User
- Beiträge: 14047
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@Erhy: Das was Du da beschreibst ist doch ziemlich genau das was `pyplot` macht.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
- __blackjack__
- User
- Beiträge: 14047
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
Ja, ein gutes Beispiel wie man das eigentlich nicht macht. 
“Vir, intelligence has nothing to do with politics!” — Londo Mollari