Плохо:
my_result = MyObject.my_method(first_parameter, second_parameter,
MyOtherObject.other_method(first, second))
- Очень быстро достигает предела длины строки, особенно при наличии вложенных вызовов / списков.
- Необходимо изменить отступ строки 2, есливсе переименовывается.
- Необходимо добавить кучу отступов для каждого нового параметра.
- Обычно не совпадает с кратным отступом по умолчанию.
- Медленнее найтиN-й параметр, потому что мне нужно сканировать как по вертикали, так и по горизонтали.
Хорошо:
my_result = MyObject.my_method(
first_parameter,
second_parameter,
MyOtherObject.other_method(first, second),
)
- Сканирование выполняется немного проще, чем приведенный выше код, поскольку первый параметрболее отделены от имени метода.
- Легче найти N-й параметр.
- Завершающая запятая означает, что разность при добавлении нового параметра составляет всего одну строку.
Другими словами:
- Поместите несколько параметров в одну строку только в том случае, если все параметры соответствуют той же строке, что и вызов метода.
- Попробуйтеминимизировать сложность различий любогоизменить.
Есть ли имя для этого шаблона?
(Вариант использования: я хотел бы найти линтер, который проверит это,но сначала мне нужно знать, как это называется.)