'command' zwei Argumente übergeben?

Fragen zu Tkinter.
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

@Alfons Mittelmeyer: Du lässt sich auch nicht überzeugen... Egal, dein gutes Recht... Mach einfach!

Bau deinen GUI-Designer, nimm del wenn du meinst es zu müssen...

Wenn es benutzbar ist, also ein reales Programm existiert, kann man auch schnell mal alle 'del' Anweisungen auskommentieren und dann mal sehen, wie es sich in der **praxis** verhält...


Aber so kommen wir nicht weiter...

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Alfons Mittelmeyer
User
Beiträge: 1715
Registriert: Freitag 31. Juli 2015, 13:34

@jens Die Verwendung von del ist nicht zufällig. Siehe mein voriges Beispiel. Genau bei diesem Beispiel ist es nicht zufällig.
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

jens hat geschrieben:Bau deinen GUI-Designer, nimm del wenn du meinst es zu müssen...

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
snafu
User
Beiträge: 6878
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Die Rede ist nicht von einer zufälligen Verwendung, sondern von einem zufälligen Effekt. Dein Beispiel zeigt auch nur, dass der (vorgesehene) Effekt auf den *Namensraum* vorhersehbar ist, was ja auch stimmt. Du willst `del` aber wegen des Effektes auf den Speicher verwenden und dieser Effekt *ist* zufällig. Keines deiner Beispiel hat bisher auch nur ansatzweise diesen zufälligen Effekt auf den *Speicher* widerlegt.

Und nein, die Tatsache, dass ein Programm *ohne* `del` beim Erzeugen von aberwitzig vielen Objekten irgendwann aufgrund von Speichermangel abstürzt, während dies *mit* `del` (scheinbar) nicht passiert, ist kein Beleg dafür. Denn dies zeigt ja immer noch nicht, wann genau der Speicher nach der Nutzung von `del` freigegeben wird. Es zeigt nur, *dass* dies offenbar zwischenzeitlich passiert. Daraus kann man aber nicht ableiten, dass dies in einem normalen, langlebigem Programm ebenfalls zu einem Zeitpunkt vor dem Interpreter-Shutdown passieren würde.

Und der Vorteil von einem verschwindend geringerem Speicherverbrauch des Programms durch das Löschen von 2-3 nicht mehr benötigter Funktionen erschließt sich mir auch nicht so ganz...
Benutzeravatar
kbr
User
Beiträge: 1508
Registriert: Mittwoch 15. Oktober 2008, 09:27

snafu hat geschrieben:Und der Vorteil von einem verschwindend geringerem Speicherverbrauch des Programms durch das Löschen von 2-3 nicht mehr benötigter Funktionen erschließt sich mir auch nicht so ganz...
Dies ergibt dann Sinn, wenn im Programm Code als Text *sehr oft* dynamisch nachgeladen und dann per 'eval' ausgeführt wird. Anschließend soll der durch nur temporär benötigten Code belegte Speicher wieder freigegeben werden. In Python halte ich dieses Vorgehen für umständlich, nicht im Sinne der Sprache (auch wenn es geht), sowie für gefährlich.
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Ich glaube ich mache hier mal zu, da hier seit Tagen keine Diskussion stattfindet.

Zwei Dinge zum Abschluss:
1. Es gibt keine Garantie, dass `del` Speicher freigegeben wird: https://docs.python.org/2/reference/sim ... -statement
2. Wie kommst du darauf, dass die paar Funktionen, die du letztendlich loeschen willst tatsaechlich einen signifikanten Anteil des Speicherverbrauchs ausmachen? Hast du das geprofiled?
Gesperrt