В Python 3 вы можете определять типы аргументов функции с помощью подсказок типов, которые предоставляют ценную информацию об ожидаемых входных данных. Это не только повышает читаемость кода, но и помогает выявить потенциальные ошибки во время разработки. В этой статье мы рассмотрим различные методы определения типов аргументов функций со значениями по умолчанию, а также приведем примеры кода.
Метод 1: подсказки типов в сигнатуре функции
Самый простой метод — использовать подсказки типов непосредственно в сигнатуре функции. Вот пример:
def greet(name: str = "John") -> str:
return f"Hello, {name}!"
print(greet()) # Output: Hello, John!
print(greet("Alice")) # Output: Hello, Alice!
Метод 2: комментарии к типам
В Python 3.5 появились комментарии к типам в качестве альтернативы подсказкам по типам. Вы можете использовать их для указания типов аргументов функции со значениями по умолчанию. Вот пример:
def add_numbers(x, y=10): # type: (int, int) -> int
return x + y
print(add_numbers(5)) # Output: 15
print(add_numbers(5, 7)) # Output: 12
Метод 3: использование типов объединения
Вы можете определить несколько приемлемых типов для аргумента, используя тип объединения из модуля typing. Вот пример:
from typing import Union
def square(number: Union[int, float] = 0) -> float:
return number 2
print(square()) # Output: 0.0
print(square(5)) # Output: 25.0
print(square(2.5)) # Output: 6.25
Метод 4: переменные типа
Переменные типа полезны, когда вы хотите определить универсальный тип, который может быть любым типом. Вот пример:
from typing import TypeVar
T = TypeVar('T')
def repeat(item: T, times: int = 1) -> List[T]:
return [item] * times
print(repeat("Hello")) # Output: ['Hello']
print(repeat(42, 3)) # Output: [42, 42, 42]