Что работает быстрее: одинарные или двойные кавычки в Python?

«Что работает быстрее: одинарные или двойные кавычки в Python?» — вопрос из категории PHP Core, который задают на 24% собеседований PHP Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В 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

Рекомендации по использованию:

  1. Стиль кода (PEP 8): Будьте консистентны в проекте

  2. Содержание кавычек: Используйте противоположные кавычки внутри строки

    message = "It's a beautiful day"  # Лучше двойные
    quote = 'He said, "Hello!"'       # Лучше одинарные
  3. 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))

Вывод: Выбирайте кавычки исходя из содержимого строки и стиля проекта, а не из соображений производительности.