Ich bin Python-Neuling und rätsele hier etwas rum. Alles Googeln vergrößert nur meine Verwirrung, vor allem, weil ich vermutlich sowieso längst in ganz abwegige Richtungen denke.
Ich habe einen Text, auf dem ich verschiedene re.search() ausführe.
Das sieht zum Beispiel so aus:
Code: Alles auswählen
mo = re.search("(?:From|Absender):\s?(.*)", line)
if mo is not None:
frmshort = mo.group(1)
frmfull = mo.group()
count += 1
continue
Code: Alles auswählen
for line in email.Iterators.body_line_iterator(posting, decode = True):
Davon gibts eine ganze Reihe von RegExp-Suchen, womit ich die *short und *full-Variablen befülle.
Nun habe ich eine ganze Reihe solcher Variablen, manche befüllt, manche "None".
Ich möchte herausfinden, welche "None" sind (zu denen soll eine Rückmeldung an den Benutzer erfolgen). Offenbar scheint das kanonisch per Exception gemacht zu werden? Finde ich ja höchst unschön...
Außerdem möchte ich eben nicht jede Variable einzeln im Code abarbeiten, sondern einmal die Variablennamen als String in eine Liste packen. Oder so ähnlich.
Also etwas wie
Code: Alles auswählen
for elem in ('frmfull', 'midfull', ...)
checke elem
Ich dachte so an getattr, aber hatte bislang null Erfolg damit. Mir fehlt einfach das Modul oder Objekt, in dem gesucht werden könnte.
Dinge wie "getattr(globals(), 'frmfull')" funktionieren eben auch nicht. Ebensowenig, wenn ich statt "globals()" den Namen meiner Quelldatei (ohne ".py" angebe -- das ist doch der Modulname?).
Long story short: ich habe keine Ahnung, wie man so etwas in Python anpackt.
(in Common Lisp wäre das so simpel... aber ist es hier vermutlich auch, wenn man nur weiß wie)