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