Python
Python 3.8 new features
foxlee
2021. 2. 10. 08:55
1. 해마 연산자
fruits = {
'사과': 20,
'바나나' : 10
}
# 기존 방식
count = fruits.get('바나나', 0)
if count:
print(f"make juice with {count}")
else:
print("need more fruits")
# count 변수는 if 블록 안에서 사용되며, else에서는 사용하지 않으므로
# if 절에서 선언하여 가독성을 높임(if 절 이후 사용이 안될경우에만)
if count := fruits.get('바나나', 0): # 왈러스 연산자(Walrus operator)
print(f"make juice with {count=}")
else:
print("need more fruits")
# 새로운 변수에 비교를 수행할 수 있음 단, 괄호 필요
if (count := fruits.get('바나나', 0)) > 10:
print(f"make juice with {count=}") # f문자열, count=10 으로 출력됨
else:
print("need more fruits")
2. 위치, 키워드 매개 변수
## uid - 위치 기반 매개 변수
## name, email - 위치 또는 키워드 기반, 반드시 필요함
## phone_number, post_code - 키워드 기반
## phone_number default 값이 없으므로 반드시 보내야함
def save_user_info(uid, /, name, email, *, phone_number, post_code=None, **kwargs):
print(uid, name, email, phone_number, post_code, kwargs)
#save_user_info(100) # wrong - name, email 필요
#save_user_info(100, 'daehan', 'gmail') # wrong - phone_number 필요
save_user_info(100, 'daehan', email='gmail', phone_number="01050174397")
# / 이전에는 무조건 위치 기반 무조건 보내줘야함
# / 이후 * 사이에는 위치, 키워드 모두 가능하지만
# 위치 기반은 (default 값이 없으므로) 무조건 보내줘야함
# 키워드 기반은 default 값이 있기 때문에 필수 아님
# 위치 기반은 무조건 키워드 기반보다 먼저 와야함
출처