Der Dokumentation zufolge sind sie so gut wie austauschbar. Gibt es einen stilistischen Grund für die Verwendung des einen statt des anderen?
Antworten
Zu viele Anzeigen?Das ist wahrscheinlich eher eine stilistische Vorliebe. Ich habe gerade PEP 8 überprüft und keinen Hinweis auf einfache oder doppelte Anführungszeichen gefunden.
Ich bevorzuge einfache Anführungszeichen, weil es nur ein Tastendruck ist, anstatt zwei. Das heißt, ich muss nicht die Umschalttaste drücken, um einfache Anführungszeichen zu setzen.
In Perl sollten Sie einfache Anführungszeichen verwenden, wenn Sie eine Zeichenkette haben, die keine Interpolation von Variablen oder escapeten Zeichen wie \n , \t , \r , usw.
PHP macht den gleichen Unterschied wie Perl: Inhalte in einfachen Anführungszeichen werden nicht interpretiert (auch nicht \n umgewandelt werden), im Gegensatz zu doppelten Anführungszeichen, die Variablen enthalten können, deren Wert ausgedruckt werden soll.
Python nicht, fürchte ich. Technisch gesehen gibt es in Python kein $-Token (oder ähnliches), um einen Namen/Text von einer Variablen zu trennen. Beide Funktionen machen Python lesbarer und weniger verwirrend. Einfache und doppelte Anführungszeichen können in Python austauschbar verwendet werden.
Ich möchte sowohl die Pixel als auch die Überraschung minimieren. Ich bevorzuge in der Regel '
um Pixel zu minimieren, aber "
wenn die Zeichenkette ein Hochkomma enthält, um wiederum die Anzahl der Pixel zu verringern. Für einen Docstring bevorzuge ich jedoch """
über '''
weil letzteres nicht standardisiert, ungewöhnlich und daher überraschend ist. Wenn ich nun einen Haufen von Zeichenketten habe, bei denen ich "
nach der obigen Logik, sondern auch eine, die mit einem '
kann ich noch verwenden "
um die Konsistenz zu wahren, sondern nur, um die Überraschung zu minimieren.
Vielleicht hilft es, sich die Philosophie der Pixelminimierung folgendermaßen vorzustellen. Wäre es Ihnen lieber, wenn englische Schriftzeichen wie folgt aussehen würden A B C
o AA BB CC
? Bei der letzteren Variante werden 50 % der nicht leeren Pixel verschwendet.