Сильно связанный вопрос .
При написании строк документации для моих функций в python я иногда хочу написать что-то вроде этого о спецификациях аргументов:
def foo(bar):
"""
Do some stuff.
bar : callable
must return True if XXX and False otherwise.
"""
if bar(...):
... # code goes here
Однакоэто не совсем точно, потому что в этом примере bar
может возвращать любой объект, который будет оцениваться как True
в операторе if, когда выполнены условия XXX.Такой вызываемый объект будет вполне допустимым аргументом для передачи foo
.
Как мне сформулировать мою документацию, чтобы отразить, что foo
не требует строго, чтобы вывод bar
былboolean?
Моим первым шагом было написать что-то вроде "[...] должен вернуть объект, который будет оценен как True, если ...", но я нахожу его запутанным.