Объявление переменных без присвоения значения в Python

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

В Python нельзя декларировать переменные без их инициализации. Рекомендуется использовать значение None в качестве временного placeholder'а:

Python
Скопировать код
var = None

Так в переменной var хранится None, что символизирует отсутствие значения до момента его реального присвоения.

Кинга Идем в IT: пошаговый план для смены профессии

Аннотация типов, а не значений

Начиная с версии 3.6, в Python появилась возможность описания типа переменной без её непосредственной инициализации. Это упрощает чтение кода и служит для статической проверки типов.

Python
Скопировать код
var: int  # тип переменной var описан как целочисленный; сама переменная пока не инициализирована

Такая запись подразумевает, что впоследствии значение var должно быть целым числом.

Избежание ошибки NameError

Обращение к непроинициализированной переменной вызывает ошибку NameError. Чтобы предотвратить её, переменные нужно инициализировать значением None до их первого использования.

Python
Скопировать код
var = None  # var готова к использованию

Когда и где инициализировать переменные

Оптимально присваивать переменным значения при их первом использовании. Предварительная декларация переменных в Python не требуется благодаря динамической типизации. Для неинициализированных переменных удобно использовать блоки try-except.

Python
Скопировать код
try:
    print(var)
except NameError:
    var = "Переменная объявлена на лету"
    print(var)

Таким образом можно избежать ошибки при обращении к непроинициализированной переменной.

Воспользуйтесь динамичностью Python

Динамическая типизация в Python позволяет декларировать переменные любого типа на лету. Это отличает язык от тех, где необходимо статическое декларирование типов.

Применение None

Значение None применяется в разных контекстах:

  • Используется как стандартное значение по умолчанию.
  • Функционирует как маркер для проверки логических условий.
  • Служит временным значением до присвоения реального значения в зависимости от условий.

Оно воспринимается как универсальный инструмент, предназначенный для временного использования до момента присвоения конкретного значения.

Использование блока else в цикле

Применение else в сочетании с циклом for позволяет выполнить определённый код, если цикл завершен без использования break. Это одна из неочевидных возможностей Python.

Python
Скопировать код
for i in range(10):
    if i == 9:
        break
else:
    print("Цикл закончился без использования break")

В приведённом примере else будет выполнено только в том случае, если цикл не был прерван.

Улучшение кода с помощью подсказок по типам

Хотя аннотации типов не являются строгим требованием для работы на Python, они полезны для статической проверки кода и как подсказка для сред разработки (IDE), помогающая в автодополнении кода.

Образцы PEP и лучшие практики

Подробное изучение PEP 526 и PEP 484 позволит глубже понять принципы работы и применения аннотаций и подсказок по типам в Python.

Упрощайте использование переменных

Следуйте принципу KISS (Keep It Simple Stupid). Используйте переменные в ясных и понятных выражениях и следуйте "pythonic" подходу, предпочитая простоту сложным конструкциям.

Визуализация

Задекларированная, но неинициализированная переменная напоминает зарезервированное место за столом:

Markdown
Скопировать код
Представим стол для VIP-гостей:
Python
Скопировать код
# Место зарезервировано, но пока что пусто.

Reserved_Seat = None   # Место пока не занято.
Markdown
Скопировать код
| Расположение за столом | Статус места            |
|------------------------|-------------------------|
| 🪑 (Зарезервировано)   | Пустое (Гостя нет)      |
| 🪑👤 (Занято)           | Гость на месте          |

Любое свободное место (🪑) символизирует неинициализированную переменную в Python, готовую принять своё значение.

Полезные материалы

  1. 3. Модель данных — Python 3.12.2 документация – описание стандартных типов данных в Python.
  2. PEP 484 – Подсказки по типам – PEP, в котором представлено введение подсказок по типам в Python.
  3. 8. Составные инструкции — Python 3.12.2 документация – подход к составным инструкциям и зонам видимости в Python.
  4. Переменные в Python – Real Python – детальное руководство по работе с переменными в Python.
  5. Учебник программирования на Python 3: Переменные – YouTube – видеоурок по использованию переменных в Python.
  6. PEP 526 – Синтаксис для Аннотаций Переменных – документ о подробностях работы с аннотациями переменных в Python.