-
TIL 2023.03.21내일배움캠프 2023. 3. 21. 20:40
문 제: 함수와 메소드이 차이점은 무엇인가요?
시 도: 함수는 def로 만드는 일련의 식 같은 거고, 메소드는 뭐지 처음 듣는데?
해 결: 구글링 & ChatGPT & 정답보기
알게된 점:
함수(function)
- 함수는 일련의 작업을 수행하는 코드 블럭이다.
- 인수(인자)를 받아서 결과값을 반환한다.
- 어디서든 함수의 이름을 불러 호출할 수 있다.
메소드(method)
- 객체에 속한 함수다
- class 내에서 정의되고 해당 class의 인스턴스에서 호출되는 함수다.
- m1.damage(150) 이런 식으로 사용
간단히 말하면, 함수는 어떠한 값을 입력받아서 그 값을 기반으로 한 작업을 수행하고 결과값을 반환하는 일반적인 코드 블록이고, 메소드는 객체에 속한 함수로, 해당 객체에 대한 작업을 수행하는 함수입니다.
문제 2
def my_func(a, b, c): print(a, b, c) my_list = [1, 2, 3] my_func(*my_list)
의 결과값은?
시 도: my_func(*my_list)에서 my_func함수에 my_list를 인자로 넣는구나, 근데 my_list는 리스트 형탠데 하나의 인자로 인식되는 거 아닌가? 결국 my_func([1,2,3],
b,c) 으로 b c 가 없어서 오류가 나지 않으려나?해 결: 코드를 실행해 보니 1 2 3 이 찍혀 나왔다. ChatGPT 선생님께 여쭤봤다.
알게된 점: 파이썬에서 * 연산자는 시퀀스(리스트, 튜플 등)를 풀어서(iterable unpacking) 함수의 인자로 전달하는 역할을 한다.
따라서, my_func(*my_list) 코드에서 * 연산자를 사용하여 my_list 시퀀스를 풀어서 my_func 함수의 인자로 전달하면, my_func 함수에는 1, 2, 3이 각각 a, b, c 인자로 전달된다.
즉, my_list를 그대로 전달하는 것이 아니라, my_list의 각 요소가 함수의 인자로 전달되는 것
'내일배움캠프' 카테고리의 다른 글
TIL 2023.03.23 (0) 2023.03.23 TIL 2023.03.22 (0) 2023.03.22 TIL 2023.03.20 (0) 2023.03.20 WIL 내일배움캠프 1주차 (0) 2023.03.19 CHILL 팀 미니프로젝트 KPT 회고록 (0) 2023.03.17