from chainon import Chainon from typing import TypeVar, Generic C = TypeVar('Chainon') L = TypeVar('Liste') class Liste: """ Une liste d'éléments """ def __init__(self:L, tab:list) ->None: """ Ne contient qu'un seul attribut : la tête de la liste. Soit c'est un objet de type Chainon, soit c'est l'objet None """ pass def is_empty(self:L) ->bool: """ Renvoie True sio la liste est vide """ pass def push(self:L, valeur) ->None: """ Ajoute en tête de liste """ pass def __str__(self:L) ->str: """ print : affiche sous forme de chaîne """ pass def __len__(self:L) ->int: """ len : longueur de la chaine """ pass def __getitem__(self:L, indice:int): """ Renvoie l'élément à l'indice donné """ pass def __add__(self:L, autre:L): """ Pour utiliser l'opérateur +, il faut implémenter une méthode __add__. Cette méthode doit renvoyer un nouvel objet. """ pass