Python에서 'try'와 'if' 구문 중에서 결정
변수에 값이 있는지 테스트할 때 'try' 중에서 선택 또는 'if' 구성은 논쟁의 여지가 있습니다. 각 접근 방식을 사용하는 이유를 자세히 살펴보겠습니다.
EAFP(허가보다 용서를 구하는 것이 더 쉬움)와 LBYL(도약하기 전에 살펴보기)
Python은 EAFP를 권장합니다. LBYL 이상. EAFP에는 작업을 시도하고 예외가 발생할 경우 이를 포착하는 작업이 포함됩니다. 반면 LBYL은 작업을 시도하기 전에 조건을 미리 확인하는 작업을 포함합니다.
효율성 및 가독성 고려 사항
효율성 측면은 예상되는 예외 빈도에 따라 달라집니다. 예외가 드물게 발생하는 경우 if 문의 속도로 인해 try/exc 블록의 오버헤드가 무효화될 수 있습니다. 그러나 예외가 더 일반적인 경우 if 문에서 조건 검사의 오버헤드를 방지하므로 try/Exception이 더 빠를 수 있습니다.
예
다음 코드를 고려하세요. 함수가 목록을 반환하는지 확인합니다.
result = function() if result: for r in result: # Process items
result = function() try: for r in result: # Process items except TypeError: pass
'결과'가 다음과 같을 가능성이 있는 경우 대부분의 경우 목록을 사용하는 경우 try/제외 접근 방식이 더 효율적입니다. 그러나 'result'가 None인 경우가 많으면 if 문을 사용하는 것이 더 좋습니다.
시간 측정
시간 측정에 따르면 예외가 실제로 예외적인 경우 try/Exception이 더 빠릅니다. , 조건이 일반적일 때 if 문은 더 빠릅니다. met.
결론
'시도'와 '만약' 사이의 결정은 다음 사항에 따라 달라집니다.
일반적으로 EAFP(시도/제외)는 특히 예외가 드물게 발생하는 경우 더욱 "파이썬적인" 접근 방식이 될 수 있습니다. 그러나 예외가 일반적인 경우에는 LBYL(if 문)이 더 적합할 수 있습니다.
위 내용은 Python에서 언제 'try'를 사용해야 하며 언제 'if'를 사용해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!