hello1 대신 hello2를 사용하는 것이 항상 안전합니까?불필요한 단계를 제외하고 시도하십시오
def hello1(): try: aaa = foo() return aaa except baz: return None def hello2(): try: return foo() except baz: return None
hello1 대신 hello2를 사용하는 것이 항상 안전합니까?불필요한 단계를 제외하고 시도하십시오
def hello1(): try: aaa = foo() return aaa except baz: return None def hello2(): try: return foo() except baz: return None
예, 그렇습니다.
예외를 포착 할 때 첫 번째 할당 후 반환은 아무런 차이가 없습니다. aaa
에 대한 할당은 완전히 중복됩니다.
예, 전혀 차이가 없습니다. 가능한 예외 소스는 foo() 함수이며 두 프로그램 모두에서 호출합니다. 어쨌든 try 블록에있는 할당 중에 foo()를 호출 할 때 예외가 발생하기 때문에 출력을 aaa에 할당하면 아무 것도 변경되지 않습니다.
예 - 예에서 예외가 발생하는 경우 이름 바인딩이 절대 수행되지 않습니다. 따라서 ref 카운트로 이상한 일이 발생할 가능성조차 없습니다. –