먼저, 파이썬에서 클래스의 __init__()
함수가 값을 반환 할 수 없으므로 슬프게도이 옵션을 사용할 수 없습니다.파이썬 __init__ 생성 실패
내 코드의 구조로 인해 클래스의 __init__
함수 내에서 데이터 어설 션 (및 사용자에게 정보를 제공하라는 메시지 표시)이있는 것이 좋습니다. 그러나 이것은 객체 생성이 실패 할 수 있음을 의미하며이를 정상적으로 복구 할 수 있기를 바랍니다.
나는 이것을 계속하는 가장 좋은 방법이 무엇인지 궁금해하고 있었다. 나는 글로벌 부울을 '유효한 생성'플래그로 설정하는 것을 고려해 왔지만 그렇게하지 않는 것이 좋습니다.
다른 모든 아이디어 (재구성 외에 어설 션은 초기화 외부에서 발생할 수 있으며 값은 인수로 전달됩니다)? 기본적으로 성공시 0을 반환하고 초기화하는 동안 -1을 반환하는 방법을 찾고 있습니다. (대부분의 C 시스템 호출과 마찬가지)
예외가 발생합니다. –
성공시 0을 반환하고 실패시 -1을 반환하는 것은 매우 비 환상적입니다. 오류를 반환하는 것은 무시하기 쉽고 처리하기가 복잡하기 때문에 좋지 않습니다. 그 중 0과 -1을 부울 값으로 사용하면 혼란이 생기고 이점이 없습니다. 파이썬을 사용하여 C 코드를 작성하는 것은 사실이 아닙니다. – abarnert
@bsbueno가 답변에서 지적했듯이, 클래스 인스턴스는 생성되지 않은'__init __()'에 초기화되어 있습니다. 그래서 값을'반환 '하지 않습니다. 전역 변수를 사용하여 실패를 감지하거나 예외를 던지는 대신 클래스에 데이터 멤버를 추가하여 클래스의 상태를 표시 한 다음 값을 직접 확인하거나'__init __() '뒤에 값을 반환하는 메서드를 호출 할 수 있습니다 잘못되었을 때 무엇이 (그리고 아마도 무엇이) 있는지를 결정하기 위해 호출되었습니다. – martineau