Python 3.10, sorti officiellement le 04 octobre 2021, permet d’écrire de manière plus lisible les différentes types que peuvent prendre les arguments et données retournées par les fonctions.


Example pour une fonction qui prend un argument de type int ou str et qui retourne un objet de type int ou str:

def ma_fonction(argument: int | str) -> int | str:
	pass

On utilise le caractère: |.


Avant, de Python 3.5 à 3.9, il fallait utiliser Union du package typing:

from typing import Union
def ma_fonction(argument: Union[int, str]) -> Union[int, str]:
	pass

Si la fonction peut retourner None et un autre type comme int par example, on continue à utiliser Optional[int]