파이썬에서 `global`과 `nonlocal`은 변수의 스코프와 관련된 키워드입니다. 다음은 각각의 사용법을 설명합니다:
global 키워드
   - global 키워드는 함수 내에서 전역 변수를 사용하고자 할 때 사용
   - 함수 내부에서 전역 변수를 사용하려면 `global` 키워드를 사용하여 변수를 전역 변수로 선언하며, 이를 통해 함수 내에서 전역 변수의 값을 읽고 수정할 수 있습니다.
   - global 키워드는 변수가 함수 외부에서 정의되었음을 나타냅니다.
   count = 0
   def increment():
       global count
       count += 1
   print(count)  # 출력: 0
   increment()
   print(count)  # 출력: 1count 변수는 함수 외부에서 정의되었으며 함수 내부에서 사용하고자 할 때 `global` 키워드를 사용
nonlocal 키워드
   - nonlocal 키워드는 중첩 함수에서 외부 함수의 변수를 사용하고자 할 때 사용됩니다.
   - 중첩 함수 내부에서 외부 함수의 변수를 읽거나 수정하려면 `nonlocal` 키워드를 사용하여 변수를 nonlocal 변수로 선언해야 합니다.
   - 이를 통해 중첩 함수에서 외부 함수의 변수에 접근할 수 있습니다.
   - nonlocal 키워드는 변수가 가장 가까운 외부 함수에 정의되었음을 나타냅니다.
 def outer():
       x = 1
       def inner():
           nonlocal x
           x += 1
           print(x)  # 출력: 2
       inner()
   outer()`x` 변수는 `outer` 함수에 정의되었고 `inner` 함수에서 사용하고자 할 때 `nonlocal` 키워드를 사용
global과 nonlocal 키워드를 사용할 때에는 주의해야 합니다. 이러한 키워드를 남발하면 코드의 가독성을 저하시킬 수 있고, 변수의 스코프와 관련된 오류를 발생시킬 수 있습니다. 따라서 전역 변수와 중첩 함수의 변수 사용은 필요한 경우에만 사용하는 것이 좋습니다.
'programming > python' 카테고리의 다른 글
| [PY] 캡슐화 (encapsulation) - @property (0) | 2022.11.27 | 
|---|---|
| [PY] 객체지향 - 상속 (inheritance) (0) | 2022.11.24 | 
| [PY] 파이썬 진수 변환 (0) | 2022.11.22 | 
| [PY] 머신러닝과 부동소수점 (0) | 2022.11.21 | 
| [PY] 동시성 (멀티스레딩, 멀티프로세싱) (0) | 2022.11.09 | 
 
										
									 
										
									
댓글