Seite 1 von 1
Variablen löschen
Verfasst: Donnerstag 28. Mai 2020, 11:05
von st_baum
Ich möchte eine Reihe Variablen löschen, etwa nach dem Schema:
Wobei "*" für alle Zeichen stehen soll, z.b. var_1, var_2, var_a etc. Sollte doch machbar sein, oder?
Re: Variablen löschen
Verfasst: Donnerstag 28. Mai 2020, 11:16
von /me
Ja, das ist prinzipiell machbar, aber unschön. Da stellen sich mir zwei grundsätzliche Fragen. Warum sind das überhaupt einzelne Variablen und keine passende Datenstruktur? Warum glaubst du, dass du `del` brauchst?
Das ist ein bisschen so wie "Ich habe jetzt 10km Verlängerungskabel und möchte das an mein Elektroauto anschließen. Wie geht das?". Natürlich kann dir jemand erklären wie das geht, aber es ist deutlich intelligenter, erst einmal die Sinnhaftigkeit des Vorgehens abzufragen.
Re: Variablen löschen
Verfasst: Donnerstag 28. Mai 2020, 12:14
von st_baum
Weil es mir so wie ich es brauche am einfachsten erscheint. Möglicherweise ist das nicht der sinnvollste Weg. Solange ich damit aber zum Ziel komme, ist das doch aber in Ordnung.
Was ist denn in Python der Code bzw. das Zeichen welches "*" in dem Kontext umsetzt?
Re: Variablen löschen
Verfasst: Donnerstag 28. Mai 2020, 12:22
von __blackjack__
@st_baum: Ich würde auch noch mal sagen wollen das Du was falsch machst. ``del`` auf Namen verwendet man ganz selten bis gar nicht. Warum denkst Du so einen Unsinn machen zu müssen? Warum hast Du überhaupt nummerierte Namen oder zumindest einen Haufen Namen mit dem gleichen Präfix? Das riecht komisch.
Edit: Und warum sollen die Namen gelöscht werden? Die würden doch auch nicht weiter stören. Und wenn doch, warum?
Re: Variablen löschen
Verfasst: Donnerstag 28. Mai 2020, 12:23
von __deets__
Gar nicht. Man setzt das so um, das man eine entsprechende Datenstruktur baut. Listen oder Woerterbuecher ueblicherweise. Und das IST der einfachste Weg.
Re: Variablen löschen
Verfasst: Donnerstag 28. Mai 2020, 12:37
von Jankie
Machbar ist es mit Stringformatierung und exec(), aber ich würde eher auf die Tipps hier hören. Das was du vor hast bringt wahrscheinlich nur Probleme.
Re: Variablen löschen
Verfasst: Donnerstag 28. Mai 2020, 13:05
von __blackjack__
Ui, jetzt auch noch `exec()`, das wird ja immer gruseliger.

Re: Variablen löschen
Verfasst: Donnerstag 28. Mai 2020, 13:18
von Jankie
Ich hab nur gesagt wie es theoretisch Möglich wäre. Wenn er unbedingt diesen Weg gehen will hat er damit die Möglichkeit (was wie gesagt nicht zu empfehlen ist). Dazu hab ich aber auch gesagt dass das meistens nur Probleme gibt.
Re: Variablen löschen
Verfasst: Donnerstag 28. Mai 2020, 13:26
von __deets__
"Hier ist eine durchgeladene, entsicherte 9mm. Du solltest nicht mit ihr spielen, aber ich gebe sie dir trotzdem!"
Re: Variablen löschen
Verfasst: Donnerstag 28. Mai 2020, 13:30
von Sirius3
@st_baum: diese Zeile sollte äquivalent zu Deinem Code sein:
Falls nicht, hast Du an anderer Stelle noch einen Fehler.
Zeig doch mal, was Du hast und was Du erreichen möchtest.
Re: Variablen löschen
Verfasst: Donnerstag 28. Mai 2020, 13:32
von Jankie
@__deets__ da bleibt halt nur auf die Vernunft zu hoffen.

Re: Variablen löschen
Verfasst: Donnerstag 28. Mai 2020, 13:35
von __deets__
Genau. Von Leuten, denen die Uebersicht fehlt, was sie da eigentlich tun oder lassen, Vernunft zu erhoffen - bomben Strategie.
Re: Variablen löschen
Verfasst: Donnerstag 28. Mai 2020, 13:36
von __blackjack__
@Jankie: Die Frage zur Analogie von __deets__ war „Ich möchte mir gerne in den Kopf schiessen.“ Da sollte man nicht auf all zu viel Vernunft hoffen.

Re: Variablen löschen
Verfasst: Donnerstag 28. Mai 2020, 13:39
von Jankie
Wenn man einem Kind sagt "Fass nicht auf die Herdplatte, die ist heiß" dann kann das Kind vernünftig sein und es glauben, oder aber es denkt es weiß es besser und packt auf die Herdplatte und merkt dann, dass die wirklich heiß ist.
@__blackjack__: Wenn sich jemand wirklich in den Kopf schießen will und davon fest überzeugt ist wird er es umsetzen. Da bleibt ja auch nur Überreden und auf Vernunft hoffen.
Re: Variablen löschen
Verfasst: Donnerstag 28. Mai 2020, 13:46
von __blackjack__
@Jankie: Das ist kein Problem solange das Kind nicht weiss wie es überhaupt an die Herdplatte heran kommt. Das sollte man ihm dann vielleicht auch gar nicht erst verraten. Denn das Kind hier hat ja sehr deutlich gesagt das es das nicht glaubt und unbedingt auf die Herdplatte fassen will, weil das eine einfach Lösung für irgendetwas sei.
Das Problem ist halt auch, dass der Vergleich hinkt, weil das im Gegensatz zur Herdplatte nicht sofort weh tut komisch benannte Namen zu löschen, sondern alles nur komplizierter macht und fehleranfälliger macht. Dem OP wird das noch nicht mal sofort auffallen, solange nicht die tatsächlichen Probleme genannt/gezeigt werden, so dass man eine tatsächlich sinnvollere Lösung zeigen kann. Der OP ist ja überzeugt, dass das alles in Ordnung ist was da bisher gemacht wird und das Code generieren um Namen zu löschen eine einfache Lösung sei.
Edit: Natürlich bleibt da nur auf Vernunft zu hoffen wenn sich jemand in den Kopf schiessen will. Aber man gibt dem doch keine geladene Waffe und hofft, sondern gibt dem *keine* geladene Waffe und fragt nach welche Probleme er damit lösen will, um eine andere Lösung zu finden/aufzuzeigen, die nicht mit einem Loch um Kopf endet.
Re: Variablen löschen
Verfasst: Donnerstag 28. Mai 2020, 13:51
von Jankie
Das Kind ist aber bestimmt neugierig und wenn der Vater nicht Antwortet wo die Herdplatte ist wird halt der Onkel gefragt. Ich bin kein Vater (vielleicht ist es besser so, sonst hätte ich viele Kinder mit Verbrennungen). Ich habe Ihm quasi gezeigt "Das da ist eine Herdplatte! Die ist heiß! Nicht Anfassen!" Was das Kind dann macht gehört zum Lernprozess.
Aber genug jetzt davon, wird langsam Offtopic. Dann werde ich in Zukunft halt keine scharfen Waffen mehr verteilen sondern nur Wasserpistolen.
#edit:
zu deinem edit: Da könnte man jetzt eine Diskussion zur aktiven Sterbehilfe anfangen, aber ich glaube das hier ist ein Python Forum und kein Forum wo es um Ethik geht.
Re: Variablen löschen
Verfasst: Donnerstag 28. Mai 2020, 13:54
von __deets__
Du setzt jemanden auf's falsche Gleis. Die ausgebildeten Denkstrukturen und Problemloesestrategien sind ungeeignet fuer umfangreichere oder auch nur leicht anders gelagerte Probleme, und muessen muehselig entlernt werden. Damit tust du der Person schlicht keinen Gefallen. Im Gegenteil. Und da die Vernunft anzurufen ist nichts anderes als ein billiges cop-out, sich selbst nicht verantwortlich zu verhalten.
Re: Variablen löschen
Verfasst: Donnerstag 28. Mai 2020, 13:57
von Jankie
Ich hätte Ihn aufs falsche Gleis gesetzt wenn ich gesagt hätte: "Genau so geht das!". Ich habe Ihm eher gesagt, welches das falsche Gleis ist, nur ohne zu sagen welches auch das richtige Gleis ist.
Aber ich verstehe eure Arugmentation und werde es in Zukunft vermeiden.
#offtopic: Glückwunsch zu > 6000 Beiträgen __blackjack__
Re: Variablen löschen
Verfasst: Donnerstag 28. Mai 2020, 14:25
von __blackjack__
@Jankie: Re: Aktive Sterbehilfe: Wenn man die Analogie nimmt, ist die Frage ob man jemanden der sterben will, einfach bedingungslos sagt wo er das Gift her bekommt. Aber auch da wird man doch (hoffentlich), bevor man das tut erst einmal nachhaken was denn der konkrete Grund ist. Und wenn dann nur ein, „Verrate ich nicht, das ist einfach die einfachste Lösung für mein Problem“, wird ein verantwortungsvoller Mensch in der Regel nicht sagen wo man das Gift bekommt.
Das ”Gift” in diesem Fall ist ja durchaus auch in wenigen Fällen sinnvoll einsetzbar, sonst wäre die Existenz schon ein Problem für sich. Nur würde *ich* halt ganz gerne vorher das Problem kennen, bevor ich so eine extreme Lösung oder Zutaten dafür anbiete. Vor allem wenn das bisschen vom Problem was bekannt ist, schon dermassen riecht. Denn nummerierte Namen sind schon ein „code smell“ der darauf hindeutet, dass man eine Datenstruktur verwenden will. Aber auch viele Namen mit einem gemeinsamen Präfix deuten darauf hin, beziehungsweise allgemein auf einen Namensraum. Und dann solche Namen nach einem Muster löschen zu wollen ist im Grunde auch wieder ein Hinweis darauf, dass man eigentlich einen Namensraum mit einer Lebensdauer aufmachen will. Also beispielsweise ein Objekt und/oder eine Funktion mit lokalen Namen.
Re: Variablen löschen
Verfasst: Donnerstag 28. Mai 2020, 17:48
von sparrow
@st_baum: Nur für den Fall, dass das in dem Thread für dich nicht deutlich wurde: Dein Fehler liegt bereits an der Stelle, wo du angefangen hast Variablen durchzunummerieren. Immer wenn man das tut, möchte man eigentlich eine Liste benutzen. Und damit erübrigt sich auch deine Frage hier, denn eine Liste hat entsprechende Funktionen und Eigentschaften, die genau das tun, was du möchtest.