기타

파이썬 전역변수 사용하기 (global variables in python)

Curio-city 2022. 9. 17. 15:19
반응형

파이썬에서 전역변수를 사용하는 방법을 알아보겠습니다.

좋은 설계를 위해서는 전역변수는 최소한으로 사용하는 게 좋습니다.

객체 간의 의존관계가 꼬여버릴 수 있기 때문이죠.

하지만 어쩔 수 없이 사용해야하거나 전역변수를 사용하는 것이 타당한 경우도 많이 있습니다.

 

 

기본

 

코드의 제일 바깥에 변수를 만들면 전역 변수 선언이 자동으로 된 것입니다.

아래의 에시에서 a, b, c는 모두 전역 변수입니다.

a = 1
b = [1, 2, 3]
c = {'first': 1, 'second': 2}

def add(x):
    return x + a + b[0] + c['first']

add(1) # return: 4 = 1 + 1 + 1 + 1

 

함수, 메서드 내부에서 전역변수 선언하기

함수 내부에서 어떤 변수를 전역 변수 선언하고 싶을 땐 어떻게 할까요?

그럴 때 사용하는 것이 바로 'global'을 활용한 전역변수 선언입니다.

다음 예시를 보시죠.

def setting():
    # 전역변수 선언
    global a
    
    # a에 값 할당
    a = {'first': 1, 'second': 2}

def add(x):
    return x + a['first']

setting()
add(1)  # return: 2 = 1 + 1

위의 예시에서 setting 함수는 a라는 전역변수를 선언하고, a에 딕셔너리를 할당합니다.

 

 

global 사용의 잘못된 예시

 

아래의 코드로는 a에 값을 넣을 수 없습니다.

global로 전역변수를 선언하는 부분은 함수 안에 같이 있어야 합니다.

global a
def setting():
    a = {'first': 1, 'second': 2}

 

다음과 같은 경우도 안 됩니다.

선언과 동시에 값을 할당할 수는 없습니다.

def setting():
    global a = {'first': 1, 'second': 2}

 

핵심 포인트

전역변수를 사용하는 방법은 두 가지다.

1. 제일 바깥에 변수를 만들기

2. 함수나 메서드 내부에서는 global을 활용해서 전역변수 선언을 하고 값을 할당하기

 

즐거운 프로그래밍 하시길 바랍니다.^^

반응형