브렌쏭의 Veritas_Garage

[우리FISA] 4일차 Function 본문

[Project_하다]/[Project_공부]

[우리FISA] 4일차 Function

브렌쏭 2024. 7. 11. 17:18

함수

python의 함수 파라미터는 자료형을 지정하지 않는다.

  • python은 함수의 파라미터에 자료형을 지정하지 않는다.
  • 따라서, 함수의 파라미터에 어떤 자료형이든 사용할 수 있다.
  • 이때, 함수의 파라미터에 자료형을 지정하지 않는 것을 다형성이라고 한다.
  • 다형성은 객체지향 프로그래밍에서 객체의 자료형을 무시하고 다루는 방식을 의미한다.

parameter 와 argument의 차이

  • parameter(매개변수): 함수를 정의할 때 사용하는 변수
  • argument(인자): 함수를 호출할 때 사용하는 값

즉 함수 외부에서 함수 내부로 데이터를 전달할 때, 함수 내부에서 사용하는 변수를 매개변수(parameter)라고 하며, 함수 외부에서 전달하는 값을 인자(argument)라고 한다.

python 메모리 구조

  • python은 메모리 구조가 다른 언어와 다르다.
  • python은 객체를 생성하고, 객체의 주소를 변수에 할당한다.
  • 이때, 변수는 객체의 주소를 참조하며, 객체의 주소를 참조하는 변수를 참조변수라고 한다.

함수의 입력값은 얕은 복사로 처리된다.

def change_value(x, value):
    x = value

a = 10
change_value(a, 20)
print(a) # 10

비파괴적인 함수

  • 함수의 입력값을 변경하더라도 함수 외부의 변수에 영향을 주지 않는다.

리스트 관련 내장함수는 파괴적이다

  • 메소드를 사용하면 원본 데이터가 변경된다.
    • append(), extend(), insert(), remove(), pop(), clear(), sort(), reverse()

가변인자

  • 함수의 입력값이 가변적일 때 사용한다.
  • *args: 가변인자를 튜플로 처리한다.
  • **kwargs: 가변인자를 딕셔너리로 처리한다.
  • *args**kwargs를 함께 사용할 때는 *args를 먼저 사용해야 한다.
  • *args**kwargs는 함수의 매개변수로 사용할 때만 사용할 수 있다.
def print_args(*args):
    print(args)

print_args(1, 2, 3) # (1, 2, 3)
def print_kwargs(**kwargs):
    print(kwargs)

print_kwargs(a=1, b=2, c=3) # {'a': 1, 'b': 2, 'c': 3}

함수의 반환값은 하나이다.

Comments