긴 if 조건을 들여 쓰기 할 때 일반적으로 다음과 같은 작업을 수행합니다 (실제로 PyDev는 이와 같이 들여 쓰기합니다).
if (collResv.repeatability is None or
collResv.somethingElse):
collResv.rejected = True
collResv.rejectCompletely()
그러나 이것은 if 문에 의해 시작된 블록을 if 조건의 마지막 부분과 동일한 들여 쓰기 수준으로 설정하여 블록이 시작되는 위치를 즉시 보지 못하므로 내 의견으로는 읽기가 매우 추악하고 어렵습니다.
내가 생각한 다른 스타일 :
if (collResv.repeatability is None or
collResv.somethingElse):
collResv.rejected = True
collResv.rejectCompletely()
두 번째 줄이 첫 번째 줄보다 훨씬 더 많이 들여 쓰기되어 있기 때문에 상당히 일관성이 없어 보이지만 읽을 수 있습니다.
if (collResv.repeatability is None or
collResv.somethingElse):
collResv.rejected = True
collResv.rejectCompletely()
이것은 또한 첫 번째 예보다 더 읽기 쉽지만 들여 쓰기는 더 이상 4의 배수가 아니며 두 번째 줄은 첫 번째 줄의 조건 시작보다 들여 쓰기가 적기 때문에 잘못 보입니다.
그래서, 내 주요 질문은 : 지나치게 긴 줄이 필요하지 않은 경우 (즉, 한 줄 조건)에 제안 된 들여 쓰기 스타일이 있습니까? 그렇지 않다면 당신 은 그러한 경우에 무엇을 선호합니까?
해결 방법
이것은 간접적 인 대답입니다. 스타일 질문에 직접 대답하는 것이 아니라 일반적으로 실용적인 대답이므로 언급 할 가치가 있습니다.
여러 줄 조건문을 작성해야하는 경우는 극히 드뭅니다. 여기에는 두 가지 요소가 있습니다.
내 최근 프로젝트, 약 12kloc을 살펴보면 포장 할 필요가있을만큼 충분히 긴 조건부가 하나뿐입니다. 문제는 매우 드물게 발생합니다. 이 작업을 수행해야하는 경우 nosklo가 말했듯이 개별적으로 들여 쓰기합니다. 아시다시피 아래 블록과 동일한 수준으로 들여 쓰기하면 혼란스럽고 읽기 어렵습니다.
참조 페이지 https://stackoverflow.com/questions/5117065
'파이썬' 카테고리의 다른 글
파이썬 ValueError : 2D 배열이 필요합니다. 대신 1D 배열이 있습니다. (0) | 2020.10.10 |
---|---|
파이썬 Pandas에서 열을 제거하는 가장 좋은 방법은 무엇입니까? (0) | 2020.10.10 |
파이썬 Google Colab 노트북에서 '.py'파일로 Python 스크립트를 실행하는 방법은 무엇입니까? (0) | 2020.10.09 |
파이썬에서 '참'과 '거짓' (0) | 2020.10.09 |
파이썬 Python에서 'except Exception as e'와 'except Exception, e'의 차이점은 무엇입니까? (0) | 2020.10.09 |
댓글