Frontend 개발자 - hyo.loui
파이썬 심화 문법(3/3) - 함수(def) 심화, 클래스(class) 본문
❤️🔥TIL : Today I Learned
함수 심화
- 매개변수
- 매개변수 기본값
- (*args)
- (**kwargs)
- 함수의 매개변수
def cal(a, b): # a와 b의 매개변수가 함수 내부의 a와 b로 전달됩니다!
return a+2*b
result = cal(1, 2) # a 에는 1, b 에는 2 를 전달합니다!
print(result) # 5
# 1+2*2 = 1+4 = 5 맞게 들어오네요
result = cal(b=2, a=1) : 매개변수 호출 시 매개변수명을 지정해서 대입한다면 순서는 무관합니다
- 함수 선언시 매개변수 기본값 지정
인수를 미리 지정해 놓으면 기본값이 됩니다
여기서 기본값은 매개변수로 입력받은 값이 없을 경우 기본적으로 입력될 값을 말합니다!
def cal2(a, b=2):
return a+2*b
result = cal2(1, 3)
print(result) # 7
result = cal2(1)
print(result) # 5
- (*args)
매개변수를 무한으로 입력 받을 수 있습니다
# 입력값의 개수를 지정하지 않고 모두 받는 방법!
def call_names(*args):
for name in args:
print(f'{name}야 밥먹어라~')
call_names('성범', '민수', '유민', '대호')
- 다만 for 문을 이용하여 args 를 하나씩 돌아 넘겨줘야 합니다!
- (**kwargs)
매개변수를 딕셔너리 형태로 받을 수 있습니다!
# 딕셔너리 반환
# 키워드 인수를 여러 개 받는 방법!
def get_kwargs(**kwargs):
print(kwargs)
get_kwargs(name='bob') # {'name': 'bob'}
get_kwargs(name='john', age='27') # {'name': 'john', 'age': '27'}
클래스
- class name()
각 객체가 가지고 있는 속성을 관리해야 할 때 쓴다!
이번에는 클래스를 이용해 아주 간단한
게임을 하나 만들어 보았는데요,
코드를 보면서 천천히 주석을 따라 해석하시면 편하게끔 작성해 보았습니다!
class Monster(): #Monster() 함수 생성
hp = 100 #체력 = 100 (Monster가 가진 기본 속성)
alive = True #상태 = 살아있음 (Monster가 가진 기본 속성)
def damage(self, attack): #데미지(공격) 함수 생성
self.hp = self.hp - attack # 체력(100) - 공격(인수)
if self.hp <= 0: # 체력이 0이하이면
self.alive = False # 상태 = 죽음
def status_check(self): #상태확인() 함수 생성
if self.alive: # 상태가 true 라면
print('살아있다') # '살아있다' 출력
else: # 아니면(false)
print('죽었다') # '죽었다' 출력
괴물1 = Monster() #Monster() 클래스로 괴물1 생성
괴물2 = Monster() #Monster() 클래스로 괴물 생성
괴물1.damage(120) #괴물1 데미지(120) 받음
괴물2.damage(80) #괴물2 데미지(80) 받음
print(괴물1.hp) #괴물1 남은 체력 -20
괴물1.status_check() #'죽었다'
print(괴물1.hp) #괴물2 남은 체력 20
괴물2.status_check() #'살았다'
최종 정리
- 매개변수는 변수명처럼 임의로 지정이 가능
- 함수에 직접 (x='code') 기본값 지정이 가능
- (*args) : 입력값을 무한으로 받는 매개변수
- (**args) : 입력값을 무한으로 받으며, 딕셔너리로 반환
- 클래스로 객체를 생성하며, 내부함수로 다양한 기능을 부여할 수 있다
'Python' 카테고리의 다른 글
파이썬 심화 문법(2/3) - 파일 불러오기, 한줄의 마법, map과 filter + lambda식 (1) | 2022.11.14 |
---|---|
파이썬 심화 문법(1/3) - 튜플, 집합, f-string, 예외처리 (0) | 2022.11.13 |
파이썬 기초 문법(2/2) - 조건문, 반복문, 함수 (2) | 2022.11.11 |
파이썬 기초 문법(1/2) - 변수, 문자열, 리스트, 딕셔너리 (2) | 2022.11.10 |
프론트엔드와 백엔드 연결 방법? (0) | 2022.11.06 |