Это, вероятно, больше вопрос стиля и предпочтений, чем что-либо еще, но ... Моя документация по-другому: Я всегда пишу строку документации в соответствии с ожидаемым вводом в контексте программы .
Пример: если я написал функцию, которая ожидает перебора ключей словаря и игнорирует его значения, я напишу:
arg : a dictionary of...
, даже если for e in arg:
будет работать с другимиитерируемые.Я решил сделать это, потому что в контексте моего кода мне все равно, будет ли функция все еще работать ... Меня больше волнует, что тот, кто читает документацию, понимает, как эта функция предназначен для использования .
С другой стороны, если я пишу служебную функцию , которая может справиться с широким спектром итерируемых элементов, я выберу одно из этих двухспособы:
- документировать, какое исключение будет при определенных условиях [ex: "Поднять ошибку TypeError, если итерация не может быть повторена более одного раза" ]
- выполнить некоторую упреждающую обработку аргументов , которая сделает функцию совместимой с итерациями «один раз».
Другими словами, япопробуйте либо сделать мою функцию достаточно надежной для обработки крайних случаев, либо быть очень откровенной в отношении ее ограничений .
Опять же: в подходе, который вы хотите использовать, нет ничего плохого, но я считаюэто один из случаев, когда " явное лучше, чем неявное": документация, в которой упоминается" многократно повторяемая итерация ", является окончательно точной, но прилагательное можно легко пропустить.