여기 아마 잘못, 내가 말할 것입니다. "debugging assertions"은 코드가 정상적인 지 확인하는 데 유용합니다. 유효하지 않은 데이터를 얻을 때 오류를 발생시키는 방법으로는 유용하지 않습니다. 그 이유 중 가장 흥미로운 것은 어설 션이 실행되지 않을 수도 있습니다. 코드가 최적화 설정으로 컴파일 된 경우 되지 않을 것이다. 그리고 비록 이것이 디버깅 일지라도, 나는 여전히 raise를 사용합니다. 그것은 더 읽기 쉽고, 데이터가 언제 또는 왜 잘못되었는지에 관계없이 항상 발생합니다.
그래서 "파이썬 (pythonic)"으로 만들려면 어설트를 제거하고 더 멋진 것으로 바꾸십시오. 그런 일이 발생하면 더 좋은 것은 존재하며 그것은 raise
문장입니다. 또한, 나는 루프가 다 써 버렸을 때 실행되는 else clause of loops (또는 while 루프의 경우 조건이 거짓이 될 때)으로 설정된 clumsy 값 set/check를 대체합니다. 그래서 깨면 else 절은 실행되지 않습니다.
for tr in completed_taskrevs:
for nr in completion_noterevs:
if tr.description in nr.body:
completion_noterevs.remove(nr)
break
else:
raise ValueError("description not found"); # or whatever exception would be appropriate
이외에는 아무 것도 바꿀 수 없습니다.
"알 고"는 무엇을 의미합니까? –
@ S.Lott 알고리즘. –
@ 행크 게이 : 정말요? 그건 무슨 언어 니? –