Ответ
В Python нет разницы в производительности между одинарными (') и двойными (") кавычками. Оба варианта компилируются в одинаковые байткод-инструкции.
Доказательство через dis module:
import dis
def single_quotes():
return 'Hello, World!'
def double_quotes():
return "Hello, World!"
print("Single quotes bytecode:")
dis.dis(single_quotes)
print("nDouble quotes bytecode:")
dis.dis(double_quotes)
Оба выводят одинаковый байткод:
2 0 LOAD_CONST 1 ('Hello, World!')
2 RETURN_VALUE
Рекомендации по использованию:
-
Стиль кода (PEP 8): Будьте консистентны в проекте
-
Содержание кавычек: Используйте противоположные кавычки внутри строки
message = "It's a beautiful day" # Лучше двойные quote = 'He said, "Hello!"' # Лучше одинарные -
f-strings (форматированные строки): Всегда требуют двойных кавычек
name = "Alice" greeting = f"Hello, {name}!" # Правильно greeting = f'Hello, {name}!' # Также работает, но менее распространено
Производительность f-strings vs других методов:
import timeit
# f-string быстрее всего
print(timeit.timeit("f'Value: {x}'", setup="x=42", number=1000000))
print(timeit.timeit("'Value: {}'.format(x)", setup="x=42", number=1000000))
print(timeit.timeit("'Value: %d' % x", setup="x=42", number=1000000))
Вывод: Выбирайте кавычки исходя из содержимого строки и стиля проекта, а не из соображений производительности.