Outils pour utilisateurs

Outils du site


python:annotations

Ceci est une ancienne révision du document !


Annotations

En python il est possible de faire des annotations:

def addition(a: int, b: int) -> int:
    return a + b

Le module typing présente une collection de classes pour composer des types. Ce module a été introduit dans Python 3.5, et n’est donc pas disponible dans les versions précédentes du langage.

Dans notre fonction addition, nous voudrions en fait que les int, float et complex soient admis. Nous pouvons pour cela utiliser le type Union du module typing :

from typing import Union
 
Number = Union[int, float, complex]
 
def addition(a: Number, b: Number) -> Number:
    return a + b

Nous utilisons ici Union mais il en existe d'autres comme par exemple :

… </code>

from typing import Callable
 
def feeder(get_next_item: Callable[[], str]) -> None:
    # Body
 
def async_query(on_success: Callable[[int], None],
                on_error: Callable[[int, Exception], None]) -> None:
    # Body
from typing import Any
     # OK
 
def foo(item: Any) -> int:
    ...
T = TypeVar('T')  # Can be anything
A = TypeVar('A', str, bytes)  # Must be str or bytes
 
def repeat(x: T, n: int) -> Sequence[T]:
    """Return a list containing n references to x."""
    return [x]*n
 
def longest(x: A, y: A) -> A:
    """Return the longest of two strings."""
    return x if len(x) >= len(y) else y
def fib(n: int) -> Iterator[int]:
    a, b = 0, 1
    while a < n:
        yield a
        a, b = b, a+b
python/annotations.1563737897.txt.gz · Dernière modification : de root