web-dev-qa-db-fra.com

Comment puis-je spécifier plusieurs types pour un paramètre à l'aide de conseils de type?

J'ai une fonction Python qui accepte les données XML comme str.

Pour plus de commodité, la fonction vérifie également xml.etree.ElementTree.Element et sera automatiquement converti en str si nécessaire.

import xml.etree.ElementTree as ET

def post_xml(data: str):
    if type(data) is ET.Element:
        data = ET.tostring(data).decode()
    # ...

Est-il possible de spécifier avec des indices de type qu'un paramètre peut être donné comme l'un des deux types?

def post_xml(data: str or ET.Element):
    # ...
14
Stevoisiak

Vous voulez un type nion :

from typing import Union

def post_xml(data: Union[str, ET.Element]):
    ...
22
deceze