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