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.
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.
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?
@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?
Zuletzt geändert von __blackjack__ am Donnerstag 28. Mai 2020, 12:23, insgesamt 1-mal geändert.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Gar nicht. Man setzt das so um, das man eine entsprechende Datenstruktur baut. Listen oder Woerterbuecher ueblicherweise. Und das IST der einfachste Weg.
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.
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.
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.
@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.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
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.
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.
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__
@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.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
@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.