Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬으로 함수 내 지역 변수 개수 확인하기

이 글에서는 함수에 정의된 지역 변수의 개수를 구하는 방법을 알아보겠습니다.

문제 정의

하나의 함수가 주어졌을 때, 해당 함수 내부에 선언된 지역 변수(local variable)의 개수를 화면에 출력해야 합니다.

파이썬에서는 코드 객체(code object)가 제공하는 co_nlocals 속성을 사용하면 이 문제를 아주 간단하게 해결할 수 있습니다. co_nlocals는 함수가 사용하는 지역 변수의 총개수를 정수 값으로 반환합니다.

예제 1: 기본적인 사용법

# 지역 변수 개수 확인
def scope():
    a = 25.5
    b = 5
    str_ = 'Tutorialspoint'

# 메인 부분
print("지역 변수 개수:", scope.__code__.co_nlocals)

출력 결과

지역 변수 개수: 3

위 예제에서 scope() 함수 안에는 a, b, str_ 세 개의 지역 변수가 선언되어 있으므로 결과로 3이 출력됩니다.

예제 2: 빈 함수와 비교하기

# 지역 변수 개수 확인
def empty():
    pass

def scope():
    a, b, c = 9, 23.4, True
    str = 'Tutorialspoint'

# 메인 부분
print("지역 변수 개수:", empty.__code__.co_nlocals)
print("지역 변수 개수:", scope.__code__.co_nlocals)

출력 결과

지역 변수 개수: 0
지역 변수 개수: 4

아무 내용도 없는 empty() 함수는 지역 변수가 없기 때문에 0이 출력되고, scope() 함수에는 네 개의 변수(a, b, c, str)가 선언되어 있어 4가 출력됩니다.

핵심 포인트

  • __code__: 함수 객체에서 코드 객체에 접근할 수 있는 속성입니다.
  • co_nlocals: 코드 객체가 가진 지역 변수의 개수를 나타내는 속성입니다.
  • 매개변수(parameter)도 지역 변수에 포함되어 계산됩니다.

결론

이처럼 파이썬에서는 co_nlocals 속성 하나만으로 함수 내부의 지역 변수 개수를 손쉽게 확인할 수 있습니다. 디버깅이나 코드 분석 작업 시 유용하게 활용할 수 있는 방법이니 꼭 기억해 두시기 바랍니다.