본문 바로가기

개발하자

주피터 노트북에서 내 변수에 댓글을 달았지만 '변수가 정의되지 않은 오류' 대신 여전히 값 출력이 표시됩니다.

반응형

주피터 노트북에서 내 변수에 댓글을 달았지만 '변수가 정의되지 않은 오류' 대신 여전히 값 출력이 표시됩니다.

주피터 노트북에서 내가 변수 선언을 코멘트하고 그것을 호출하려고 할 때, '변수가 정의되지 않은 오류'를 얻는 대신, 내가 그 변수를 코멘트하기 전에 출력을 받는 이유는 무엇인가?

import random

number = random.randint(1,9)
##user_guess = 3

def first():
    print(number)

def second():
    print(user_guess)

second()

출력: 3

'정의되지 않음'이어야 합니다.




노트에서 해당 셀을 정의한 변수로 실행한 후 주석을 달아 셀을 다시 실행해야 합니다. Jupyter Notebook은 이전에 정의된 변수를 메모리에 유지합니다. ("user_guess not defined")를 얻으려면 노트북 커널을 다시 시작하고 셀을 다시 실행해야 합니다.




주피터 런타임은 모든 변수를 메모리에 저장합니다. 예를 들어, 하나의 코드 셀에 입력할 경우

x = 1

변수 x는 컴퓨터 메모리에 저장되어 있기 때문에 그 이후에 실행되는 모든 셀에서 액세스할 수 있습니다. 그래서 다음 칸에 타이핑을 하면

print(x)

여기서 접근할 수 있습니다.

당신은 x를 변수로 선언했기 때문에 현재 컴퓨터 메모리에 있는 변수입니다. 변수 이름을 주석 처리한 상태에서 셀을 다시 실행할 때 변수는 이미 컴퓨터 메모리에 있으며 Jupyter는 코드 셀의 결과를 '실행 취소'하지 않으므로 정의되지 않습니다.


반응형