Главная страница » Python » 30. Сильная (или Строгая) типизация
Добро пожаловать на тридцатый урок по Python! Сегодня мы обсудим концепцию сильной типизации (иногда называемой строгой типизацией) в Python. Понимание типизации важно для написания надежного и безопасного кода, а также для эффективного использования возможностей языка Python.
Сильная типизация означает, что тип переменной не изменяется неявно. Если переменная имеет определенный тип, то операции, несовместимые с этим типом, приводят к ошибкам. Python является языком с сильной типизацией, что помогает предотвратить многие ошибки, связанные с типами данных.
В Python нельзя неявно смешивать типы данных, такие как целые числа и строки.
x = 10
y = "5"
# print(x + y) # Это вызовет ошибку TypeError: unsupported operand type(s) for +: 'int' and 'str'
Чтобы выполнить такую операцию, необходимо явно преобразовать один из типов:
x = 10
y = "5"
print(x + int(y)) # Вывод: 15
Если у нас есть функция, которая ожидает определенный тип данных, передача данных неправильного типа вызовет ошибку.
def add_numbers(a: int, b: int) -> int:
return a + b
# add_numbers(10, "20") # Это вызовет ошибку TypeError: unsupported operand type(s) for +: 'int' and 'str'
Python является динамически типизированным языком, что означает, что вы можете присваивать переменным значения различных типов в разное время. Однако, несмотря на динамическую типизацию, Python сохраняет сильную типизацию.
Пример динамической типизации
var = 10
print(type(var)) #
var = "Hello"
print(type(var)) #
Некоторые типы данных в Python являются неизменяемыми (immutable), что означает, что после их создания они не могут быть изменены. К таким типам относятся строки, кортежи и числа.
Пример неизменяемых типов
s = "hello"
# s[0] = "H" # Это вызовет ошибку TypeError: 'str' object does not support item assignment
t = (1, 2, 3)
# t[0] = 0 # Это вызовет ошибку TypeError: 'tuple' object does not support item assignment
В Python можно использовать аннотации типов для указания типов переменных и параметров функций. Аннотации типов помогают повысить читаемость кода и выявлять ошибки на этапе разработки.
Пример аннотаций типов
def greet(name: str) -> str:
return f"Hello, {name}!"
greeting = greet("Alice")
print(greeting) # Вывод: Hello, Alice!
def multiply(a: int, b: float) -> float:
return a * b
result = multiply(5, 2.5)
print(result) # Вывод: 12.5
def divide(a: int, b: int) -> float:
return a / b
x = 10
y = 3
division_result = divide(x, y)
print(division_result) # Вывод: 3.3333333333333335
isinstance
def safe_addition(a, b):
if isinstance(a, (int, float)) and isinstance(b, (int, float)):
return a + b
else:
raise TypeError("Оба аргумента должны быть числами")
try:
print(safe_addition(10, 5)) # Вывод: 15
print(safe_addition(10, "5")) # Это вызовет ошибку TypeError
except TypeError as e:
print(e)
Сегодня вы узнали о концепции сильной (строгой) типизации в Python и о том, как она помогает предотвратить ошибки, связанные с типами данных. Сильная типизация позволяет писать более надежный и читаемый код, а аннотации типов делают код более понятным.
Наша цель и главная задача сделать качественное образование в вашем браузере
Телефон: +375 33 910-08-92
Email: info@codefor.tech
Адрес: г. Барановичи, ул. Пирогова, д. 7
© 2024 Все права защищены. CodeFor.