Python Training _ 20

WONY_yoon·2025년 10월 19일
post-thumbnail

Local & Global Variables

아래 함수 실행 후 Step1, Step2 -> a, b, x, y 결과를 예측 해보세요.

def test(x, y):
    global a
    a = 49
    x, y = y, x
    b = 53
    b = 7
    c = 135
    # 예상1
    print('Step1 : ', a, b, x, y)


a, b, x, y = 8, 13, 33, 44

# 함수 실행
test(23, 7)

# 예상2
print('Step2 : ', a, b, x, y)

출력 결과

Step1 :  49 7 7 23
Step2 :  49 13 33 44

간단한 설명

  1. Step1 (함수 내부)

    • global a로 인해 전역 변수 a가 변경됨 → a = 49
    • x, y = y, x로 값 교환 → x = 7, y = 23
    • b = 53 후 바로 b = 7로 다시 덮어씀 → b = 7
    • 따라서 출력은 → a(49), b(7), x(7), y(23)
  2. Step2 (함수 외부)

    • 함수 안에서 global a로 변경된 a = 49는 전역적으로 반영됨
    • 하지만 b, x, y는 함수 내부 지역변수이므로 외부 값에 영향 없음
    • 따라서 전역 변수 그대로 유지 → a(49), b(13), x(33), y(44)

0개의 댓글