2014-10-07 2 views
11

PEP8은 실수하지 않으면 삼항 연산자에 대해 아무 말도하지 않습니다. 그렇다면 무엇을 제안합니까? 3 진 조건부 연산자로 긴 행을 작성하는 방법은 무엇입니까?어떻게 PEP8을 준수하도록 파이썬에서 삼항 조건부 연산자를 들여 씁니까?

some_variable = some_very_long_value \ 
       if very_long_condition_holds \ 
       else very_long_condition_doesnt_hold 

또는

some_variable = some_very_long_value \ 
        if very_long_condition_holds \ 
         else very_long_condition_doesnt_hold 

당신이 가장 선호합니까 어느 하나?

+0

첫 번째가 더 읽기 쉽습니다. Btw에는 파이썬 파일을 검사 할 pep8 프로그램이 있습니다. https://pypi.python.org/pypi/pep8 –

+3

(1) PEP 8은 여러 행에 걸쳐있는 표현식의 경우 백 슬래시보다 괄호를 선호합니다. (2) 조건과 값이 너무 길면 항상 연산자를 사용할 수 없습니다. – delnan

+0

불행히도, 뭔가에 대한 의견을 묻는 질문은 스택 오버플로에 대한 주제가 아닙니다. 이 질문들이 더 좋은 수신을 얻을 수있는 몇 가지 다른 장소가 있습니다. 대신 거기에서 시도해야합니다. – Veedrac

답변

10

아니요. 긴 행의 경우 일반적으로 괄호를 사용하여 줄 바꿈을 허용하는 것이 좋습니다. 의견은이 작업을 수행할지 여부를 다릅니다

some_variable = (some_very_long_value 
       if very_long_condition_holds 
       else very_long_condition_doesnt_hold) 

나이 :

some_variable = (
    some_very_long_value 
    if very_long_condition_holds 
    else very_long_condition_doesnt_hold) 

또는이 :

개인적으로
some_variable = (
    some_very_long_value 
    if very_long_condition_holds 
    else very_long_condition_doesnt_hold 
) 

나는 세 번째를 선호; Google 사내 스타일은 두 번째입니다.

1
some_variable = some_very_long_value\ 
       if very_long_condition_holds\ 
       else othervalue 

은 이러한 문제에 직면 할 때 중괄호를 선호합니다. 여기에서 최대 줄 길이를 확인하십시오. http://legacy.python.org/dev/peps/pep-0008/#maximum-line-length

+0

중괄호? 아니면 괄호를 사용합니까? –

+1

@ PM2Ring'SyntaxError : not chance' – frnhr

1
some_variable = (some_very_long_value 
       if very_long_condition_holds else 
       very_long_condition_doesnt_hold) 
  • 사용 PEP8 당, 대신 라인 연속성을위한 백 슬래시의 괄호.
  • if ... else 구조를 자체 행에두면이 표현식의 세 부분, 즉 then 표현식, 조건부 부분 및 else 표현식 사이에 명확한 구분이 있습니다. thenelse 표현식은 균일하게 형식화되며 if...else 구문과 구분됩니다.
관련 문제