파이썬에서 바인딩되지 않은 로컬 오류는 무엇입니까?


최상의 답변

이 코드를 참조하십시오.

  1. 카운터 = 0
  2. def increment () :
  3. 카운터 + = 1
  4. increment ()

Python은 변수 선언이 없으므로 변수 자체의 범위를 파악해야합니다. 간단한 규칙으로 수행합니다. 함수 내부의 변수 인 경우 해당 변수는 로컬로 간주됩니다. 따라서 라인

counter + = 1

암시 적으로 카운터를 increment ()에 로컬로 만듭니다. 그러나이 행을 실행하려고하면 할당되기 전에 로컬 변수 카운터의 값을 읽으려고 시도합니다. UnboundLocalError.

이러한 유형의 오류를 해결하려면 다음과 같이 변경하십시오.

  1. 카운터 = 0
  2. def increment () :
  3. 글로벌 카운터
  4. 카운터 + = 1
  5. increment ()

최고입니다 …!

Answer

UnboundLocalError는 지역 변수가 참조되기 전에 참조 될 때 발생합니다. 할당 됨.

NameError의 하위 클래스입니다.

이는 할당되거나 선언되기 전에 액세스하려는 식별자가 있음을 의미합니다.

다음 중 하나입니다. 약한 타이핑 의미론, 다중 상속, 공통 기본 클래스 또는 프로토콜이없는 언어의 많은 문제.

코드가 실행되기 전에 인트로 스펙 션 및 컴파일러 추론이 더 많은 정보를 제공 할 수있는 예외에 너무 많이 의존합니다.

코드에서 유효성 검사를하기 위해 문자를 입력 할 때 절약하는 비용은 스택 추적으로 지불합니다. .

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다