ETC

[Python] 매개 변수 & 변수 범위

StoneSeller 2022. 6. 24. 11:06

type hinting

함수를 정의할 때 매개변수와 반환값의 자료형에 대해 힌트를 주는 방식(type hinting)으로 보완할 수 있다.

 

def repeat_message(message: str, count: int) -> None:
  """메세지를 count번 출력"""

  for _ in range(count):
    print(message)

repeat_message("하이", 2)

 

가변 인자

*args(위치 가변 인자)
임의의 개수의 인자를 받을 때 사용한다.
매개변수 앞에 *를 붙여주면 튜플 형태로 받아온다.

def print_numbers(*arguments):
  print(arguments)
  print(type(arguments))

print_numbers(1,2,3)
(1, 2, 3)
<class 'tuple'>

 

**kwargs(키워드 가변 인자)

keyword argument의 줄임말로 키워드를 제공
매개변수 앞에 **를 붙여주면 사전으로 받아온다.
*와 달리 등호를 사용하여야 한다.

def print_info(**keywords):
  print(keywords)
  print(type(keywords))

print_info(name="kbh", age=25)
{'name': 'kbh', 'age': 25}
<class 'dict'>

 

Unpacking

사전을 언패킹할 때는 ** 연산자를 사용

{**{"red": "back", "black": "back"}, "blue": "front", "pink": "front", "green":"front"}
{'red': 'back',
 'black': 'back',
 'blue': 'front',
 'pink': 'front',
 'green': 'front'}

 


global

함수 안에서 전역 변수를 지역변수처럼 사용하려면 global 키워드를 사용한다.

def test_func():
  global x
  x = 216
  print(x)

x = 1 
print(x)

test_func()
print(x) # 함수 안에서 변경한 결과 유지
1
216
216

 

가변 객체에 대한 전역 변수는 global이 없어도 함수 안에서 변경이 가능하다.

def test_func():
  x.append("hi")
  print(x)

x = ["hello"]
print(x)

test_func()
print(x)
['hello']
['hello', 'hi']
['hello', 'hi']

 

 

728x90