ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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
Designed by Tistory.