2017-05-11 9 views
1

나는 책을 읽음으로써 파이썬을 배우기 만하고 try 및 except 명령을 표시하기 위해 다음 코드가 사용되었습니다. 그것들은 의미가 있지만 내 질문은 출력에 관한 것입니다. 실행될 때 스팸 (0)이 오류를 생성 한 후 다음 줄에 없음이라고 표시되고 그 다음 42가옵니다. 없음은 어디에서 왔습니까?Simple Python Q : idk 생성되는 코드 없음이 코드가 실행될 때 없음

def spam(divideBy): 
    try: 
     return 42/divideBy 
    except ZeroDivisionError: 
     print('Error') 

print(spam(2)) 
print(spam(12)) 
print(spam(0)) 
print(spam(1)) 

답변

2

파이썬에서 return 문을 가지고 있지 않은 함수는 None을 반환합니다. 따라서 예외가 잡히고 함수가 반환 된 후 다음 줄이 실행됩니다.

except 블록이 예외를 다시 발생시키는 경우 함수는 반환하지 않지만 대신 예외를 throw합니다.

+0

아, 마지막 장을 배웠지 만 스팸이 return 문으로 정의되었으므로 버려졌습니다. 이 문제를 해결해 주셔서 감사합니다. – JTalbott