PyCharm는 마지막 반환에 접근 할 수없는 말,이 코드에 대해 경고합니다. 누가 옳은가?`돌아 오는 중 .. 돌아 오는 길 '에 도달 할 수없는 코드입니까?</p> <pre><code>def foo(): with open(...): return 1 return 0 </code></pre> <p>내가 <code>open()</code>이 실패하면 두 번째 반환 실행할 것이라고 예상 :
4
A
답변
11
PyCharm이 맞습니다. open()
이 실패하면 예외가 발생하고 은return
이 아닙니다.
with
컨텍스트 관리자를 생성하는 표현식에서 예외로부터 사용자를 보호하지 않습니다. with
이후의 표현식은 컨텍스트 관리자를 생성 할 것으로 예상됩니다.이 때 컨텍스트 관리자는 __exit__
메서드가 저장되고 __enter__
메서드가 호출됩니다. 유일한 결과는 컨텍스트 관리자가 성공적으로 생성되고 입력되었거나 예외가 발생한다는 것입니다. 어느 시점에서도 with
은이 단계에서 예외를 삼켜 버리고 자동으로 블록을 건너 뜁니다.
관련 문제
- 1. 는 <strong>돌아 오는</strong>로 돌아 오는
- 2. self.class_eval << DEF ... DEF
- 3. [<Control> - <Return>]
- 4. 내가 <code>LocalStorage</code>를 사용하여 돌아 오는 저장소에 여러 상태를 지속 할 필요가 돌아 오는
- 5. 오버로드 연산자 << 돌아 ostream에 &
- 6. "return ret <0"의 의미는 무엇입니까?
- 7. 두 번째 페이지에서 새 셀을 누르면 첫 번째 셀로 돌아 오는 <code>collectionView</code>이 있습니다.
- 8. 연산자 << : std :: cout << i << (i << 1);
- 9. Axis2/SOAP, Return List <myIObject> 빈 반환 return
- 10. System.Threading.Tasks에서 돌아 오는 방법. UnitTesting의 <string> 메서드
- 11. Heredoc <<< 또는 <<?
- 12. 0x10e6ee898에서 <django.db.models.query_utils.DeferredAttribute 객체로 돌아 오는 양식>
- 13. << 클래스 함수 오버로드 시도 중
- 14. 이 코드 스 니펫에서`1 << 0`은 무엇을합니까?
- 15. github add <<<<<<< HEAD
- 16. 파이썬에서 인자없는 lambda? 람다로</p> <pre><code>def fn(): return None </code></pre> <p>파이썬 :
- 17. 대체는 "<<<"물고기
- 18. GNUPLOT 5.0 "lt-lt lt -1"unrecognized
- 19. 상수 작업을 void 함수보다 느리게 반환하는 함수가 있습니까?</p> <pre><code>int foo() { doSomething(); return 0; } void bar() { doSomething(); return; } int main() { foo(); bar(); } </code></pre> <p>이 <code>foo</code>보다 <code>bar</code> 빠른, 그리고 왜 :
- 20. - 알 수없는 오류 :</p> <pre><code>return ((JavascriptExecutor)driver).executeScript("return $(':animated').length").toString().equals("0"); </code></pre> <p>을하지만 코드를 실행할 때 다음과 같은 오류가 제공됩니다 : $는
- 21. 왜이 상황에서 list.extend가 추가됩니까?</p> <pre><code>def foo(x): err = [] return err errors = [] res = pool.map_async(foo, mylist, callback=errors.extend) print errors </code></pre> <p>내가 얻을 :
- 22. Mono.Cecil :</p> <pre><code>get { return dataString; } </code></pre> <p>에 :</p> <pre><code>get { string temp = dataString; PropertyLogging.Get("DataString", ref temp); return temp; } </code></pre> <p>지금까지 해봤 지역 변수 및 변경 return 문
- 23. Tortoise svn <<<<를 파일에 추가 중!
- 24. 연산자 오버로드 <<
- 25. Gemfile 구문 오류 : <<<<<<< localhost를 시작하려고 할 때 HEAD
- 26. 전역 정적 변수와 함수의 정적 변수 비교</p> <pre><code>static Foo foo; // ... foo.func(); </code></pre> <p>: 그리고 더</p> <pre><code>Foo& GetFoo(void) { static Foo foo; return foo; } // ... GetFoo().func(); </code></pre> <p>
- 27. Return IEnumerable <IMyInterface>가 작동하지 않습니다. IEnumerable <MyObj>을 사용해야합니다.
- 28. <<< EOT
- 29. 내가 매김 버튼으로 <code>RecyclerView.Adapter<RecyclerView.ViewHolder></code>이 0 항목
- 30. jquery datepicker getdate return null <code>JQuery</code><code>datapicker</code><code>getDate</code>을 사용하면