[Python] global, nonlocal

2023. 2. 1. 20:32·🤓 기술 학습 & 공부 기록/Python

 

파이썬에서는 하위 스코프에서 상위 스코프의 변수를 영구 변경 가능

 

📍Global

- 전역 변수를 하위 스코프에서 변경할 때 사용

- 예시

a = "outer"
print(a)  # outer


def print_out():
    global a  # a 를 전역 변수로 사용한다고 선언
    a = "inner"  # a 변경
    print(a)


print_out()  # inner
print(a)  # inner

 

📍nonlocal

- 중첩 함수 내에서 지역 변수로 사용하지 않을 때 사용

(상위 스코프의 비전역 변수를 탐색)

def print_out():
    num = 0

    def change_num():
        nonlocal num
        num = 100
        print(num)

    change_num()  # 100
    print(num) # 100


print_out()  # 원래는 0 이어야 하는데 100 출력

 

'🤓 기술 학습 & 공부 기록/Python' 카테고리의 다른 글
  • [Python] 최종 원소가 int인 2차원 리스트 만들기
  • [Python] 백준 2346 < 풍선 터뜨리기 >
  • [Python] deque
  • [Python] range(a, b) 에서 a == b 인 경우 주의하기
지식물원
지식물원
지식이 자라는 식물원!
  • 지식물원
    지식물원
    지식물원
  • 전체
    오늘
    어제
    • 분류 전체보기 (522) N
      • 🎨 프론트엔드 공부 (247) N
        • JS & TS (93) N
        • HTML & CSS (24) N
        • React & Next (51)
        • Vue & Nuxt (22)
        • 기타 (57)
      • 🤓 기술 학습 & 공부 기록 (116)
        • Node.js (0)
        • Python (37)
        • 백엔드 (0)
        • 딥러닝 (1)
        • 컴퓨터 일반 (72)
        • 개발 인프라 (6)
      • 👨‍💻 프로젝트 경험 (16)
        • Work (0)
        • Toy (16)
      • ⚙️ 개발 팁 & 노하우 (23)
        • 프론트엔드 (6)
        • 기타 (17)
      • ☕️ 커리어 & 인터뷰 준비 (88)
        • 코딩 테스트 (88)
      • 📰 기술 트렌드 & 생각 정리 (4)
      • 📚 기타 (25)
        • 마케팅 (15)
        • 비개발서적 (10)
  • 블로그 메뉴

    • 태그
  • 링크

  • 공지사항

    • 모바일 접속 시 코드 하이라이팅 깨질 때
  • 인기 글

  • 태그

    PostgreSQL
    그리디
    좋은코드나쁜코드
    SQL
    GATSBY
    컴퓨터구조
    웹접근성
    태블로
    react-query
    머신러닝
    typescript
    타이탄의도구들
    Vue.js
    BFS
    브루트포스
    cssbattle
    nextjs
    AWS
    DP
    자료구조
    프로그래머스
    javascript
    컴포넌트
    객체지향의사실과오해
    nuxt
    DFS
    Python
    프로그래머의뇌
    react
    백트래킹
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
지식물원
[Python] global, nonlocal
상단으로

티스토리툴바