Clarify why Black prefers double quotes

This commit is contained in:
Łukasz Langa 2018-03-31 20:54:26 -07:00
parent 1d45f6e6a1
commit fcaaf955be

View File

@ -264,12 +264,27 @@ keep it.
### Strings ### Strings
*Black* prefers double quotes (`"` and `"""`), but only if this does not *Black* prefers double quotes (`"` and `"""`) over single quotes (`'`
result in more escaping. It will remove escape sequences as necessary as and `'''`). It will replace the latter with the former as long as it
part of moving to the other type of quote. This applies to all kinds of does not result in more backslash escapes than before.
prefixed strings, including *raw-strings* (`r""`), *byte literals* (`b""`),
and *formatted strings* (`f""`). The approach above strikes a good balance The main reason to standardize on a single form of quotes is aesthetics.
between consistency and legibility. Having one kind of quotes everywhere reduces reader distraction.
It will also enable a future version of *Black* to merge consecutive
string literals that ended up on the same line (see
[#26](https://github.com/ambv/black/issues/26) for details).
Why settle on double quotes? They anticipate apostrophes in English
text. They match the docstring standard described in PEP 257. An
empty string in double quotes (`""`) is impossible to confuse with
a one double-quote regardless of fonts and syntax highlighting used.
On top of this, double quotes for strings are consistent with C which
Python interacts a lot with.
On certain keyboard layouts like US English, typing single quotes is
a bit easier than double quotes. The latter requires use of the Shift
key. My recommendation here is to keep using whatever is faster to type
and let *Black* handle the transformation.
## Editor integration ## Editor integration
@ -398,8 +413,11 @@ More details can be found in [CONTRIBUTING](CONTRIBUTING.md).
* added `--diff` (#87) * added `--diff` (#87)
* add line breaks before all delimiters, except in cases like commas, to better * add line breaks before all delimiters, except in cases like commas, to
comply with PEP 8 (#73) better comply with PEP 8 (#73)
* standardize string literals to use double quotes (almost) everywhere
(#75)
* fixed handling of standalone comments within nested bracketed * fixed handling of standalone comments within nested bracketed
expressions; Black will no longer produce super long lines or put all expressions; Black will no longer produce super long lines or put all