Хорошо известно, что функции утверждений, которые проверяют одно значение / объект, имеют имена, начинающиеся с «is» (is_valid, is_ok, is_empty).У меня есть функция, которая сравнивает несколько объектов (в моем случае строки) и решает, достаточно ли они похожи.Как бы вы назвали такую функцию?Мой вариант are_strings_similar(s1, s2, s3), но выглядит несколько неловко.
is_valid
is_ok
is_empty
are_strings_similar(s1, s2, s3)
Код на Python, кстати
Лично я бы пошел с is_strings_s Similar или просто is_simil. Зачем? Потому что это делает поиск строк по вашему коду для всех функций утверждений, что намного проще. Это код, а не исследовательская работа. Неправильно спрягаемые глаголы не являются главной проблемой, простота обслуживания. Почти любой говорящий по-английски может прочитать «is_strings_s Similar» и разобраться в назначении функции. Однако никакой анализатор регулярных выражений, о котором я знаю, не может искать различные конъюгаты глагола «быть» без дополнительного ввода от пользователя.
Как насчет
if nearly_equal(s1, s2, s3):
или
if nearly_the_same(s1, s2, s3):
unittest использует assertAlmostEqual, поэтому, возможно,
if almost_equal(s1, s2, s3):
Что ж, в идеале было бы создать метод similar и заставить его принимать 2+ итераций в качестве набора параметров; -)
similar
Лично я считаю, что включение типа делает имя немного неловким, но это личное предпочтение.Это не нарушает ни одного из правил стиля , как я их прочитал.
Это может помочь прояснить ваши мысли, чтобы действительно прочитать их вслух.
if are_similar_strings("foo","fo","fooo"): #guessing at implementation here.
Полностью зависит от того, какое соглашение об именах вы используете.Если в нем не указаны названия таких функций, назовите функцию по своему усмотрению.are_strings_similar выглядит просто отлично для меня.Это не имеет большого значения.
are_strings_similar