일부 조건이 만족스럽지 않으면 종종 파이썬 코드가 죽는 것을 원합니다. 나는 보통 assert whatever()
을 사용한다. 그러나 때로는 __debug__
은 False
과 같습니다. 이러한 경우에도 내가 확인하고 싶은 주장과 같은 조건이 있습니다. 나는이 경우를 다루는 "올바른"방법이 단골 일 것이라고 생각한다 : if not whatever(): raise Exception('Error message!')
. 다시 말해, 시간이 많이 걸리는 작업이나 여러 번 실행되는 작업을 수행하지 않고도 수행 할 수있는 체크에 어설 션을 사용하는 것이 맞다고 생각합니다. 전체 조건부와 동일한 작업을 수행하는 데 더 간결한 방법이 있습니까?Python의 간결한 오류 검사
Perl에서 나는 단지 whatever() or die
을 사용합니다. 물론 언어 간의 철학적 차이점을 감안할 때 Perl이 더 적은 수의 문자를 필요로하는 것을 보는 것은 놀랄 일이 아닙니다.
def confirm(expression):
if not expression:
raise AssertionError
다음, 대신 assert whatever()
를 사용하는 대신 confirm(whatever())
을 할 수있는 : 당신이 할 수
'def die (왜) : raise Exception (why)'의 문제점은 무엇입니까? 그런 다음 'whatever() 또는 die ('깨진 것이 무엇이든간에) '로 사용하십시오. – mgilson
그래서 __ debug __ = False를 지정해도 여전히 코드가 죽기를 원하십니까? 그렇다면 sys.exit()를 수행 할 수 있습니다. 조건이 충족되면 (또는 충족하지 않으면 원하는대로) sys.exit()를 수행 할 수 있습니다. – astromax