auf dynamtische Variable zurückgreifen

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.
Antworten
Jyll
User
Beiträge: 26
Registriert: Montag 26. Juli 2021, 14:18

Hallo Gemeinde, hab wieder lange gesucht. Variablen dynamisch anlegen, hab ich nun geschafft. Aber wie kann ich diese nun dynamisch (als per Nr.) wieder aufrufen? Wenn ich die Nr. direkt hinter z.B. var_url4 schreibe, dann bekomme ich das Ergebnis. Aber wie kann ich var_url+"i" abfragen? Alles, was ich versucht habe, schlug leider fehl. Danke für die Hilfe. Grüße von Jyll

Code: Alles auswählen


i = int(var_max_seiten + 1)

for x in range(1, i): 
    param_seitennr = x
    url = f'https://www.Seite{param_seitennr}.html'
    globals()['var_url%s' % x] = url
    
    
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Gar nicht. Denn man legt keine dynamischen Variablen an. Man benutz Datenstrukturen, wie zb Listen oder Wörterbücher.
Sirius3
User
Beiträge: 17759
Registriert: Sonntag 21. Oktober 2012, 17:20

Warum benutzt Du die Variable `x` um den Wert dann gleich in `param_seitennr` abzulegen? Wenn Du zu var_max_seiten 1 dazuaddieren kannst, dann hast Du schon ein int und mußt das nicht nochmal umwandeln.
Das präfix var_ ist übrigens nichtssagend, da durch die Verwendung schon klar ist, dass max_seiten eine Variable ist.
Die Lösung sieht so aus:

Code: Alles auswählen

urls = [f'https://www.Seite{seitennr}.html' for seitennr in range(1, max_seiten + 1)]
Jyll
User
Beiträge: 26
Registriert: Montag 26. Juli 2021, 14:18

Hallo @__deets__ und @Sirius3, man man, dass war gestern ein Paradigma-Wechsel. Letztendlich hatte ich nach Deiner Anmerkung, __deets__, einen kleinen "Anfall". Aber Du hast mir letztendlich damit den richtigen Weg gewiesen. Man gibt nur ungern alte Denkgewohnheiten (vba) auf.
Hey Sirius3, in der url sind noch mehr Parameter, so dass ich noch im alten Muster gefangen war. Nachdem __deets__ mir den Tipp gegeben hat, sind etliche Variablen rausgeflogen. Auch Dein Tipp bringt mich wirklich weiter. Gut, dass es dieses Forum gibt.
Vielen Dank.
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Sowas geht in VBA? Und ist geläufig? Kann ich mir schwer vorstellen. Hast du da mal ein Beispiel?
Antworten