Bien que je connaisse le concept de typage de Python, j'ai parfois du mal à déterminer le type des arguments des fonctions ou le type de la valeur de retour de la fonction.
Maintenant, si j'ai écrit la fonction moi-même, je connais les types. Mais si quelqu'un veut utiliser et appeler mes fonctions, comment est-il censé connaître les types ? J'ai l'habitude de mettre des informations sur les types dans la docstring de la fonction (comme : "...the id argument should be an integer..."
y "... the function will return a (string, [integer]) tuple."
)
Mais est-ce que chercher l'information dans la docstring (et la mettre là, en tant que codeur) est vraiment la façon dont cela doit être fait ?
Editer : Alors que la majorité des réponses semblent s'orienter vers "oui, document !", je pense que ce n'est pas toujours le cas. j'ai l'impression que ce n'est pas toujours très facile pour les types "complexes".
Par exemple : comment décrire de manière concise dans une docstring qu'une fonction renvoie une liste de tuples, chaque tuple étant de la forme (node_id, node_name, uptime_minutes) et que les éléments sont respectivement une chaîne de caractères, une chaîne de caractères et un nombre entier ?
La documentation PEP docstring ne donne aucune indication à ce sujet.
Je suppose que le contre-argument sera que dans ce cas les classes devraient être utilisées, mais je trouve python très flexible parce qu'il permet de passer ces choses en utilisant des listes et des tuples, c.-à-d. sans classes.