본문 바로가기
Python

[Python] 함수 global키워드, 가변 매개변수(args, kwargs)

by ybin.im 2024. 12. 9.

변수

변수는 전역변수와 지역변수로 나눌 수 있다.

전역변수 : 함수, 클래스 외부에서 선언하며, 코드 어디에서나 접근 가능.
                 프로그램이 종료되면 메모리에서 소멸

지역변수 : 한정된 지역에서 사용되는 변수 ( ex. 함수 내에서 선언된 변수 )
                 그 지역을 벗어나면 메모리에서 소멸

global 키워드

전역변수의 값을 함수 내부에서 읽기는 가능하지만, 변경할 수 없기에
global이라는 키워드를 사용하여 값을 변경해야한다.

 

▼ 그냥 전역변수의 값을 가져오는건 가능하다.

0 출력됨

 

▼ 하지만 전역변수의 값을 함수내에서 바꾸려고 하면

함수 외부에서 선언된 변수를 내부에서 사용하려하였기에 UnboundLocalError가 뜬다.

 

▼global로 사용할 전역변수를 불러주면, 전역변수에 있는 값을 변경할 수 있게된다.


함수의 가변 매개변수

def func(*args):
def func(**kwrags):


함수에서 사용할 매개변수의 개수가 가변적일때 사용한다.

 

▶ *args 가변 매개변수

 식별자 앞에 *을 표시하며 관례상 *args를 사용한다.

사용할 땐 *을 안붙여도 된다.

매개변수를 튜플형식으로 묶어서 사용

고정된 매개변수가 있을 땐, *args를 가장 마지막에 써야한다.

a = "hi"
b = 1
args = (2, 3, 4, 5)

▶ **kwargs 딕셔너리 가변 매개변수

 def func(**kwargs):

함수에서 매개변수를 딕셔너리 형태로 묶어서 사용할 때 관례상 **kwargs를 사용한다.

 

-  딕셔너리를 사용했기에 딕셔너리 메서드 사용가능

 -  *args와 **kwargs를 같이 사용할 땐 무조건 *args가 먼저 와야한다.

▼출력물
name : 홍길동
city : 서울
gender : 남자
나이는 44