Указать в функции, что аргументов является список с элементами определенного типа данных
Я знаю, что я могу указать в питоне, что аргумент является списком, вот так:
def func(arg: list)
Но что, если я должен получать список только с целыми числами? Могу ли я как-то сделать это? Может быть это можно сделать, используя массивы numpy?
Ответы (2 шт):
Автор решения: arnold
→ Ссылка
Вы можете использовать аннотацию типов для указания типа элементов, которые должны присутствовать в списке. Следующий код определяет функцию, которая принимает список с целочисленными элементами:
import typing
def func(arg: typing.List[int]) -> None:
pass
Автор решения: wchistow
→ Ссылка
Добавлю, что начиная с Python3.9 можно писать так (т. е. без typing.List, а просто с list):
def func(arg: list[int]) -> None:
pass
А если нужно несколько типов, то так:
Начиная с Python3.10:
def func(arg: list[int | float]) -> None: passНачиная с Python3.9:
from typing import Union def func(arg: list[Union[int, float]]) -> None: passДо Python3.9:
from typing import List, Union def func(arg: List[Union[int, float]]) -> None: pass