Home >Backend Development >Python Tutorial >How to Specify Multiple Return Types in Python with Type Hints?
Specifying Multiple Return Types with Type Hints
When working with functions that can return different data types, such as a list or a boolean, it's essential to properly specify the expected return types using type hints. This helps improve code readability and enables type checking.
Using Python 3.10 Syntax
From Python 3.10 onwards, the preferred method for specifying multiple return types is using the pipe (|) operator to create a union type. The syntax is as follows:
def foo(id) -> list | bool: # ...
In this example, the foo() function can return either a list or a boolean value.
Using typing.Union for Earlier Python Versions
For Python versions prior to 3.10, you can use the typing.Union class to create a union type:
from typing import Union def foo(client_id: str) -> Union[list, bool]: # ...
Enforcement of Type Hints
It's important to note that type hints are not enforced in Python, meaning that runtime type checking is not performed. They serve primarily as a descriptive tool during code development and documentation.
Example
Consider the following code:
>>> def foo(a: str) -> list: ... return "Works" ... >>> foo(1) 'Works'
In this example, even though the function is annotated to return a list, it returns a string. However, the type annotation is still set in the __annotations__ attribute:
>>> foo.__annotations__ {'return': <class 'list'>, 'a': <class 'str'>}
Additional Resources
For more information on type hints, refer to the following resources:
The above is the detailed content of How to Specify Multiple Return Types in Python with Type Hints?. For more information, please follow other related articles on the PHP Chinese website!