>>> import re
>>> s = "hello"
>>> re.findall("a", s)
[]
Для такого рода вопросов откройте оболочку Python и запустите ее: согласно документации, она всегда возвращает список, но ничего не может найти, поэтому это пустой список.
Для внутреннего вопроса:
«Я просто хочу, чтобы в документации говорилось« она не возвращает None »или« она всегда возвращает список ».»
Я думаю, что вам нужно понять стиль документации Python. Первая строка
«Возвращать все неперекрывающиеся совпадения шаблона в строке как список строк».
Если бы он возвратил что-нибудь еще, он бы сказал это. например, на той же странице, для подпункта:
"Вернуть строку, полученную путем замены крайнего левого не перекрывающегося вхождения шаблона в строке на repl замены. Если шаблон не найден, строка возвращается без изменений"
это заявляет крайний случай
Вы не можете предполагать, что все функции , написанные кем-либо в любой библиотеке , будут иметь такую же хорошую документацию, как ядро Python. Но для основных функций в Python, да, они обычно почти всегда делают так, как говорят документы. (Основные функции находятся внутри подстраниц: https://docs.python.org/2/contents.html или https://docs.python.org/3/contents.html
Если вы возьмете случайную библиотеку из pypi, документы могут быть не идеальными.
Одна из «плохих» вещей в python - то, что его документация страдает от таких вещей, как исключения. Такие языки, как Java, где исключения являются частью определения функции / метода, а возвращаемые типы строже. По сути, постарайтесь запомнить Zen of Python и просто продолжать с ним. python.org/dev/peps/pep-0020