스코프와 사용자 정의 함수

Python 함수 입문

Hugo Bowne-Anderson

Instructor

함수에서의 스코프 빠른 정리

  • 스크립트 어디서나 모든 객체를 사용할 수 있는 것은 아님

  • 스코프: 객체/이름에 접근 가능한 프로그램의 범위

    • 전역 스코프: 스크립트 본문에서 정의

    • 지역 스코프: 함수 내부에서 정의

    • 내장 스코프: 미리 정의된 builtins 모듈의 이름들

Python 함수 입문

전역 vs. 지역 스코프 (1)

def square(value):
    """Returns the square of a number."""
    new_val = value ** 2
    return new_val

square(3)
9
new_val
<hr />----------------------------------------------------------------
NameError                       Traceback (most recent call last)
<ipython-input-3-3cc6c6de5c5c> in <module>()
<hr />-> 1 new_value
NameError: name 'new_val' is not defined
Python 함수 입문

전역 vs. 지역 스코프 (2)

new_val = 10

def square(value):
    """Returns the square of a number."""
    new_val = value ** 2
    return new_val

square(3)
9
new_val
10
Python 함수 입문

전역 vs. 지역 스코프 (3)

new_val = 10

def square(value):
    """Returns the square of a number."""
    new_value2 = new_val ** 2
    return new_value2

square(3)
100
new_val = 20

square(new_val)
400
Python 함수 입문

전역 vs. 지역 스코프 (4)

new_val = 10

def square(value):
    """Returns the square of a number."""
    global new_val
    new_val = new_val ** 2
    return new_val

square(3)
100
new_val
100
Python 함수 입문

연습해 봅시다!

Python 함수 입문

Preparing Video For Download...