변수의 범위

2023. 10. 24. 00:36·Python 활용하기
728x90
반응형

유효 범위 (variable scope)

  • 변수의 선언에 따라 해당 변수가 미치는 범위
  • python에는 지역변수(local variable)과 전역변수(global variable)이 있다.

지역변수 (local variable)

  • 함수 내에서 선언된 변수
  • 일반적으로는 함수 내에서만 사용 가능하다.
def func():
    a = 'local variable'
    print(a)

func() # local variable

지역변수 (global variable)

  • 함수 외부에서 선언된 변수
  • gloabl 키워드를 통해 함수 내부에서 사용 가능하다.
def func():
    a = 'local variable'
    print(a)
    
a = 'global variable'
print(a)
func()

# global variable
# local variable
def func():
    global a
    a = 'B'
    print(a)
    
a = 'A'
func()

# B

  • nonlocal은 global 키워드와 달리 중첩함수 내에서의 변수 범위를 대상으로 한다.
def func():
    a = 1
    
    def plus():
        a = 2
        
    plus()
    print(a)
    
func()

# 1
def func():
    a = 1
    
    def plus():
        nonlocal a
        a = 2
        
    plus()
    print(a)
    
func()

# 2

* mutable, immutable

  • mutable객체는 수정 가능하다. (list, dict)
  • immutable객체는 수정 불가능하다. (int, float, str, tuple)
a = 0
b = [0]
c = {'c':0}
d = [0]
e = [0]

def func():
    # a += 1
    b[0] += 1
    c['c'] += 1
    d.append(1)
    e = [1]
    # print('a:', a)
    print('b:', b)
    print('c:', c)

func()
print(d)
print(e)

# a : cannot access local variable 'a' where it is not associated with a value
# b : [1]
# c : {'c':1}
# d : [0, 1]
# e : [0]
저작자표시 (새창열림)

'Python 활용하기' 카테고리의 다른 글

데코레이터  (0) 2023.11.10
행렬의 곱셈  (1) 2023.11.06
2차원 리스트 생성  (0) 2023.07.31
[자료구조] 트라이(Trie)  (0) 2023.01.19
[Algorithm] LIS(Longest Increase Sequence)  (0) 2023.01.12
'Python 활용하기' 카테고리의 다른 글
  • 데코레이터
  • 행렬의 곱셈
  • 2차원 리스트 생성
  • [자료구조] 트라이(Trie)
swwho
swwho
일상을 데이터화하다
  • swwho
    하루한장
    swwho
  • 전체
    오늘
    어제
    • 분류 전체보기 (189)
      • ML_DL (40)
        • MUJAKJUNG (무작정 시리즈) (19)
        • 딥러닝 공부하기 (21)
      • 데이터사이언스 (1)
        • EDA (1)
        • 데이터과학을 위한 통계 (0)
      • 데이터엔지니어링 (2)
      • 논문리뷰 (2)
        • Computer Vision (2)
      • Python 활용하기 (12)
      • 코딩테스트 (127)
        • Python (109)
        • MySQL (14)
      • Git (3)
      • MySQL 활용하기 (0)
      • 일상 이야기 (1)
  • 블로그 메뉴

    • 홈
    • 태그
  • 최근 글

  • 250x250
  • hELLO· Designed By정상우.v4.10.3
swwho
변수의 범위
상단으로

티스토리툴바