Соглашение об именах для функции, которая анализирует несколько объектов и возвращает логическое значение - PullRequest
1 голос
/ 19 июля 2011

Хорошо известно, что функции утверждений, которые проверяют одно значение / объект, имеют имена, начинающиеся с «is» (is_valid, is_ok, is_empty).У меня есть функция, которая сравнивает несколько объектов (в моем случае строки) и решает, достаточно ли они похожи.Как бы вы назвали такую ​​функцию?Мой вариант are_strings_similar(s1, s2, s3), но выглядит несколько неловко.

Код на Python, кстати

Ответы [ 4 ]

4 голосов
/ 19 июля 2011

Лично я бы пошел с is_strings_s Similar или просто is_simil. Зачем? Потому что это делает поиск строк по вашему коду для всех функций утверждений, что намного проще. Это код, а не исследовательская работа. Неправильно спрягаемые глаголы не являются главной проблемой, простота обслуживания. Почти любой говорящий по-английски может прочитать «is_strings_s Similar» и разобраться в назначении функции. Однако никакой анализатор регулярных выражений, о котором я знаю, не может искать различные конъюгаты глагола «быть» без дополнительного ввода от пользователя.

1 голос
/ 19 июля 2011

Как насчет

if nearly_equal(s1, s2, s3):

или

if nearly_the_same(s1, s2, s3):

unittest использует assertAlmostEqual, поэтому, возможно,

if almost_equal(s1, s2, s3):
1 голос
/ 19 июля 2011

Что ж, в идеале было бы создать метод similar и заставить его принимать 2+ итераций в качестве набора параметров; -)

Лично я считаю, что включение типа делает имя немного неловким, но это личное предпочтение.Это не нарушает ни одного из правил стиля , как я их прочитал.

Это может помочь прояснить ваши мысли, чтобы действительно прочитать их вслух.

if are_similar_strings("foo","fo","fooo"): #guessing at implementation here.
1 голос
/ 19 июля 2011

Полностью зависит от того, какое соглашение об именах вы используете.Если в нем не указаны названия таких функций, назовите функцию по своему усмотрению.are_strings_similar выглядит просто отлично для меня.Это не имеет большого значения.

...