당신은 멋쟁이, 우리는 장고쟁이~

0%

PEP8 Code Layout - Should a Line Break Before or After a Binary Operator?

이항연산자 전후 줄바꿈



이항 연산자 전에 줄바꿈을 해야할까요 아니면 후에 줄바꿈을 해줘야 할까요?


줄바꿈은 연산기호 전에 되어야 하는가?

아니면

줄바꿈은 연산기호 후에 되어야 하는가?



몇십년동안, 줄바꿈은 연산기호 후에 해주는것이 권장 되어 왔습니다.


하지만, 줄바꿈을 연산기호 후에 해주면, 두가지 이유로 가독성을 떨어트립니다.



1) 연산기호들이 스크린에 세로줄로 흐트러지고, 이전줄에 있는 피연산자들(opernand) 과 떨어지게 됩니다.

2) 시각적으로 어떤것들이 더해지고, 빼줘야 하는것인지 파악하는데에 시간을 들여야 합니다.



연산기호들이 피연산자들과 멀리 떨어져 있는 경우의 예를 들어봅니다


1
2
3
4
5
6
7
8
9
10
# 연산기호들이 이전줄의 피연산자들과 떨어져 있는 경우의 코드 

income = (gross_wages +
taxable_interest +
(dividends - qualified_dividends) -
ira_deduction -
student_loan_interest)

# 줄바꿈이 연산기호인 + 혹은 - 이후에 이루어진것을 확인 할수 있습니다.
# 코드를 읽어가면서 어떤것을 더해주고 빼주어야 하는지 눈으로 더 확인 해봐야 하는 상황이 옵니다.

위 상황에서 가독성이 떨어지기 때문에, 수학자들과 퍼블리셔들은 반대의 관례를 따르기 시작합니다.



문단안에 있는 공식들은

언제나 연산기호 뒤에 줄바꿈을 하지만

잘 진열된 공식들은 언제나 연산기호 전에 줄바꿈을 합니다

Donald Knuth in “Computers and Typesetting series”



수학적 전통을 따르면, 결과적으로 더 읽기 편한 코드가 나옵니다. 아래 예시 코드를 참조합니다.



1
2
3
4
5
6
7
8
9
# 코드에서 줄바꿈을 연산기호 전에 하면
# 연산기호들과 피연산자들을 매칭 시키기 쉬운 코드가 됩니다.
# PEP8 에서 나온 좋은 예시는 아래와 같습니다.

income = (gross_wages
+ taxable_interest
+ (dividends - qualified_dividens)
- ira_deduction
- student_loan_interest)


마치며..


파이썬 코드에서는, 줄바꿈을 연산기호 전이나 연산기호 후에 하는 두가지 방법이 모두 허용됩니다.

어떤 방법이던, 해당 지역의 관례와 맞는다면, 두가지 방식은 다 괜찮습니다.


저는 개인적으로, 연산기호 전에 줄바꿈을 해주는것이 가독성에 좋다고 생각합니다.