나는 자주 이런 상황이 발생할 . 이 경우, 난 그냥 루프의 나머지를 건너 뛰고 난의 다음 반복으로 이동하려는, 그래서 나는 종종 이런 식으로 뭔가 쓰기 :파이썬 예외 루프에서 절을 제외하고 ... 시도와 함수
for i in range(10):
try:
os.mkdir(i)
except OSError:
continue
그러나, 내가 정말, 정말 원하는 것은 함수입니다 그 행동을 요약합니다. 이런 식으로 뭔가 :
for i in range(10):
custom_mkdir(i)
이 존재하지 않는 경우 디렉토리를 만들지 만의 다음 interation으로 건너 뜁니다하는 의도 된 행동 :이 같은 일부 코드를 가질 수 있도록
def custom_mkdir(directory):
try:
os.mkdir(directory)
except OSError:
continue
for 루프가있는 경우.
그러나 continue 문은 이러한 방식으로 함수에 포함될 수 없습니다. 그럼 어떻게하면 의도하지 않은 동작을 얻을 수 있습니까?
for i in range(10):
try:
custom_mkdir(i)
except OSError:
continue
이것은 처음보다 훨씬 나쁜 상황입니까?
실패합니다. –
@JoshSmeaton : 발신자가해야 할 일을 결정해야합니까?질문에 게시 된 코드에서는 그렇지 않습니다. – jwodder
예, 발신자가 수행합니다. 그것이 문제의 핵심입니다. 'mkdir '이 실패하면 OP는'continue'를 원합니다. 그들은 루프를 더 깔끔하게 보이기 위해 try/except를 캡슐화하기를 원합니다. –