Динамическая и статическая, сильная и слабая , явная и неявная типизации

1. Динамическая и статическая типизация

Типизация
Описание
Пример

Статическая

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

int x = 5; x = "hello" — ошибка в C++

Динамическая

Тип переменной определяется во время выполнения, можно менять тип.

Python: x = 5; x = "hello" — работает

Python — язык с динамической типизацией.

x = 10      # int
x = "text"  # теперь str — это нормально в Python

2. Сильная и слабая типизация

Типизация
Описание
Пример

Сильная

Python не позволяет неявно преобразовывать несовместимые типы.

"5" + 5 → ошибка TypeError

Слабая

Язык позволяет неявное преобразование типов.

JavaScript: "5" + 5"55"

Python — язык с сильной типизацией, но динамической.

# Ошибка в Python
x = "5"
y = 2
print(x + y)  # TypeError

3. Явная и неявная типизация (Type Hinting)

  • Неявная: Python сам определяет тип переменной.

x = 10       # int
y = "text"   # str
  • Явная: с помощью аннотаций типов (type hints).

def add(a: int, b: int) -> int:
    return a + b

x: str = "hello"

Примечание: Type hints не влияют на выполнение кода, но помогают IDE, линтерам и проверке типов (mypy).


4. Схема для Python

Python:
- Динамическая типизация
- Сильная типизация
- Неявная по умолчанию
- Явная через type hints

5. Применение в автотестах

  • Type hints полезны для улучшения читаемости тестов и функций утилит.

  • Проверка типов помогает избежать ошибок в сложных тестовых сценариях.

def login(user: str, password: str) -> bool:
    # возвращает True если логин успешен
    ...

Last updated

Was this helpful?