Возможна ли нотация аргументов и возвращаемых объектов функции в python в несколько типов?
в псевдокоде это бы выглядело как функция бла_бла_функция(аргумент=значение по умолчанию -> int либо matrix либо vector) возвращает ->число, либо вектор, либо матрицу: тело функции (пример условный)
Ответы (2 шт):
В python нет подказок типов. Есть только так называемые «аннотации», которые могут быть любыми объектами и в программном смысле ни на что не влияют.
Это просто метаданные.
def abs(n: 'signed num') -> 'positive num':
return -n if n < 0 else n
То, как могут использоваться эти аннотации, нужно смотреть в документации тех инструментов(линтеров), которые вы используете.
Библиотека typing тем не менее, предлагает довольно обширный класс объектов для унификации аннотаций типов, чтобы их могли использовать и линтеры и IDE, и т.п.
Стоит изучить эту библиотеку, там есть несколько полезных для вас концептов(Union, например)
from typing import Union
def foo(arg: Union[int, Matrix]) -> Union[int, Matrix]
# some code