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?Ich verwende gerne doppelte Anführungszeichen um Zeichenketten, die für Interpolationen oder natürlichsprachliche Meldungen verwendet werden, und einfache Anführungszeichen für kleine symbolähnliche Zeichenketten, breche aber die Regeln, wenn die Zeichenketten Anführungszeichen enthalten oder wenn ich es vergesse. Ich verwende dreifache doppelte Anführungszeichen für Docstrings und rohe String-Literale für reguläre Ausdrücke, auch wenn sie nicht benötigt werden.
Zum Beispiel:
LIGHT_MESSAGES = {
'English': "There are %(number_of_lights)s lights.",
'Pirate': "Arr! Thar be %(number_of_lights)s lights."
}
def lights_message(language, number_of_lights):
"""Return a language-appropriate string reporting the light count."""
return LIGHT_MESSAGES[language] % locals()
def is_pirate(message):
"""Return True if the given message sounds piratical."""
return re.search(r"(?i)(arr|avast|yohoho)!", message) is not None
Ich zitiere die offiziellen Dokumente unter https://docs.python.org/2.0/ref/strings.html :
Im Klartext: String-Literale können in passende einfache Anführungszeichen (') oder doppelte Anführungszeichen (") eingeschlossen werden.
Es gibt also keinen Unterschied. Stattdessen wird man Ihnen sagen, dass Sie den Stil wählen sollen, der dem Kontext entspricht, und konsequent zu sein . Und ich stimme zu - und füge hinzu, dass es sinnlos ist, "Konventionen" für diese Art von Dingen aufzustellen, weil man damit nur alle Neulinge verwirrt.
Ich bevorzugte früher '
insbesondere für '''docstrings'''
, wie ich finde """this creates some fluff"""
. Auch, '
kann ohne das Zeichen Shift Taste auf meiner schweizerdeutschen Tastatur.
Ich bin inzwischen dazu übergegangen, dreifache Anführungszeichen für """docstrings"""
zu entsprechen. PEP 257 .
Ich stimme Will zu:
- Doppelte Anführungszeichen für Text
- Einfache Anführungszeichen für alles, das sich wie ein Bezeichner verhält
- Rohe String-Literale in Anführungszeichen für Regexps
- Dreifache doppelte Anführungszeichen für docstrings
Daran werde ich festhalten, auch wenn das eine Menge Flucht bedeutet.
Für mich sind Bezeichner in einfachen Anführungszeichen am wertvollsten, weil sie sich durch die Anführungszeichen abheben. Der Rest der Praktiken ist nur dazu da, den einzelnen Bezeichnern in Anführungszeichen etwas Raum zu geben.
Wenn die Zeichenkette, die Sie haben, eine enthält, sollten Sie die andere verwenden. Zum Beispiel, "You're able to do this"
, oder 'He said "Hi!"'
. Ansonsten sollten Sie einfach so konsistent wie möglich sein (innerhalb eines Moduls, innerhalb eines Pakets, innerhalb eines Projekts, innerhalb einer Organisation).
Wenn Ihr Code von Leuten gelesen werden soll, die mit C/C++ arbeiten (oder wenn Sie zwischen diesen Sprachen und Python wechseln), dann sollten Sie ''
für Ein-Zeichen-Zeichenfolgen, und ""
für längere Saiten könnte den Übergang erleichtern. (Das Gleiche gilt für die folgenden anderen Sprachen, in denen sie nicht austauschbar sind).
Der Python-Code, den ich in freier Wildbahn gesehen habe, neigt dazu, Folgendes zu bevorzugen "
über '
, aber nur geringfügig. Die einzige Ausnahme ist, dass """these"""
sind viel häufiger als '''these'''
nach dem, was ich gesehen habe.
- See previous answers
- Weitere Antworten anzeigen