Multiline string interpretation

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
Zap
User
Beiträge: 533
Registriert: Freitag 13. Oktober 2006, 10:56

Hallo zusammen, ich hab mich schon seit längeren gefragt ob es nicht eine
elegantere Lösung gibt multiline strings in tieferen Verschachtelungsebenen einzubetten.
Ich rede von Multiline Strings die im Quellcode beim beginn einer neuen Zeile nicht immer wieder
an Position 1 beginnen müssen und deren führenden Leerzeichen bis zur
Einrückung automatisch ignoriert werden.
Eben so wie man es von Docstrings kennt.
Ich finde nämlich Gebilde wie diese sehr unschön (nur so als Beispiel):

Code: Alles auswählen

class AnyClass:
    ...
    def any_function(self):
        for i in self.something_iterable:
            if i:
                assert i.bla is not None and i.foo, \
"""Irgend eine wichtige information bzgl des aufgetretenen Fehlers 
der etwas umfangreicher ausfällt"""
    ...
   
Geht sowas auch anders? Ohne das man mit " " + \ " " arbeitet oder einen Modulglobalen string dafür anlegt? Bei den DocStrings funktioniert die Interpretation richtig, man kann diese ja problemlos als eingerückte Blocks schreiben.

Die einzige Information die ich bisher dazu gefunden habe ist diese:
http://www.python.org/dev/peps/pep-0295/
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Schau mal hier: [wiki]Multiline-Strings[/wiki]

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Zap
User
Beiträge: 533
Registriert: Freitag 13. Oktober 2006, 10:56

*ups* :roll:
Ok, warum das www durchwühlen wenn sowas hier im Wiki steht?!

Das mit den zusammengesetzten Literalen in einer Klammer finde ich ganz ok.

Danke Jens ;)
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Jup. So wie im letzten Beispiel auf der Wiki Seite mache ich es auch immer.

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Antworten