Chociaż zdaję sobie sprawę z koncepcji pisania kaczego w Pythonie, czasami zmagam się z typem argumentów funkcji lub typem wartości zwracanej przez funkcję.
Otóż, jeśli sam napisałem tę funkcję, WIEMY typy. Ale co, jeśli ktoś chce używać i wywoływać moje funkcje, skąd ma znać typy? Zwykle umieszczam informacje o typie w dokumentacji funkcji (na przykład: "...the id argument should be an integer..."i "... the function will return a (string, [integer]) tuple.")
Ale czy wyszukiwanie informacji w dokumentacji (i umieszczanie ich tam, jako programista) naprawdę jest tak, jak powinno być zrobione?
Edycja: większość odpowiedzi wydaje się kierować w stronę „tak, dokument!” Uważam, że nie zawsze jest to łatwe w przypadku „złożonych” typów.
Na przykład: jak zwięźle opisać w łańcuchu dokumentacyjnym, że funkcja zwraca listę krotek, z każdą krotką w postaci (identyfikator_węzła, nazwa_węzła, uptime_minutes) i że elementy są odpowiednio łańcuchem, łańcuchem i liczbą całkowitą?
Dokumentacja dokumentacyjna PEP nie zawiera żadnych wytycznych w tym zakresie.
Wydaje mi się, że kontrargumentem będzie to, że w takim przypadku należy użyć klas, ale uważam, że Python jest bardzo elastyczny, ponieważ pozwala na przekazywanie tych rzeczy za pomocą list i krotek, tj. Bez klas.