["python","arguments","python-typing"]
How do I specify multiple types for a parameter using type-hints?

I have a Python function which accepts XML data as an str. For convenience, the function also checks for xml.etree.ElementTree.Element and will automatically convert to str if necessary. import xml.etree.ElementTree as ET def post_xml(data: str): if type(data) is ET.Element: data = ET.tostring(data).decode() # ... Is it possible to specify with type-hints that a parameter can be given as one of two types? def post_xml(data: str or ET.Element): # ...
You want a type union. For Python 3.10+: def post_xml(data: str | ET.Element): For earlier versions: from typing import Union def post_xml(data: Union[str, ET.Element]): ...