Хотя мне известно о концепции Python «утиная типизация», я иногда борюсь с типом аргументов функций или типом возвращаемого значения функции.
Теперь, если я сам написал функцию, я ДЕЙСТВИТЕЛЬНО знаю типы. Но что, если кто-то захочет использовать и вызвать мои функции, как он / она должен знать типы? Я обычно помещаю информацию о типе в строку документации функции (например: "...the id argument should be an integer..."и "... the function will return a (string, [integer]) tuple.")
Но действительно ли поиск информации в строке документации (и размещение ее там, как кодировщик) так, как предполагается?
Изменить: в то время как большинство ответов, похоже, направлены на «да, документ!» Я считаю, что «сложным» типам это не всегда легко.
Например: как кратко описать в строке документации, что функция возвращает список кортежей с каждым кортежем формы (node_id, node_name, uptime_minutes) и что элементы являются соответственно строкой, строкой и целым числом?
Документация Docstring PEP не дает никаких указаний по этому поводу.
Думаю, контраргументом будет то, что в этом случае следует использовать классы, но я считаю python очень гибким, поскольку он позволяет передавать эти вещи с помощью списков и кортежей, то есть без классов.