[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}