Python, отступы и ненависть.

автор superman 19 сентября 2015 г. 15:03:19

Теги: PythonОтступы



Так уж повелось что в Python отступы или indentation являются частью синтаксиса языка. Об этом подробно описано в PEP8.

Давайте сравним на примере удобство написания кода для Ruby и Python на примере простейшего метода.

Ruby:

def test1(x,y)
  x + y
end

Python:

def test1(x,y):
  return x + y

В итоге верное форматирование кода мы соблюдали в обоих случаях, но в последнем это было частью синтаксиса языка. Но в друг у вас аллергия на отступы и вы хотите это явно выразить в Ruby, то как же будет выглядеть ваш код ?

Ruby:

def test1(x,y)
x + y
end

Ухудшилась ли читаемость кода ? На первый взгляд нет, но давайте посмотрим как это будет выглядеть на большом участке кода. Возьмем в пример часть кода из GitlabHQ и уберем все отступы.

def title
title = safe_message
return no_commit_message if title.blank?
title_end = title.index("\n")
if (!title_end && title.length > 100) || (title_end && title_end > 100)
title[0..79] << "…"
else
title.split("\n", 2).first
end
end

Код читается, но сложно. А теперь вернем все обратно.

def title
  title = safe_message
  return no_commit_message if title.blank?

  title_end = title.index("\n")
  if (!title_end && title.length > 100) || (title_end && title_end > 100)
    title[0..79] << "…"
  else
    title.split("\n", 2).first
  end
end

Код читается заметно лучше.

Т.е. независимо от того нравится вам идеология отступов в Python или нет, вы так же их используете и в других языках. А если это не так то извините но ваш код говно.


comments powered by Disqus

2014-2018 © thenextcode.ru