web-dev-qa-db-fra.com

Python 3.10+: facultatif [TYPE] ou TYPE | Aucun

Maintenant que c'est Python 3.10 a été publié, existe-t-il des préférences lorsque vous indiquez qu'un paramètre ou une valeur renvoyée peut être facultatif, c'est-à-dire que ce peut être None. Donc, donc ce qui est préféré:

Option 1 :

def f(parameter: Optional[int]) -> Optional[str]:

Option 2 :

def f(parameter: int | None) -> str | None:

En outre, y a-t-il une préférence entre Type | None et None | Type?

4
lmiguelvargasf

Non-autorité, mais je m'attendrais à ce que Optional quand

  • il y a une valeur par défaut fournie (probablement None)
  • None serait inhabituel que l'appelant passe

Pendant que je m'attendrais à ce que j'ai Union ou | à utiliser quand

  • il n'y a pas de valeur par défaut et/ou de valeur par défaut non None
  • None est aussi une valeur valide

Voir Suggestions connexes à Comment ajouter des paramètres par défaut aux fonctions lors de l'utilisation de types d'indication?

0
ti7