Positional Arguments
위치 인자
def my_function(a, b, c):
pass
my_function(10, 1, 3)
a=10, b=1, c=3의 의미이다.
Keyword Arguments
키워드 인자
def my_function(a, b, c):
pass
my_function(c=3, b=1, a=10)
a=10, b=1, c=3의 의미이다.
그런데 함수를 호출할 때마다, 매번 키워드 인자를 적는다면 번거롭다.
파이썬에서는 기본 값을 갖는 인수를 만들어서 이 문제를 해결한다.
함수 선언을 바꾸는 것이다.
Arguments with default values
def my_function(a=10, b=1, c=3):
pass
my_function()
a=10, b=1, c=3의 의미이다.
함수를 만들 때 특정 값을 파라미터 값으로 입력한다.
a, b, c 값은 기본값이고
함수를 호출했을 때 이 값들을 기본으로 사용한다는 뜻이다.
또한 함수를 호출할 때 어떠한 인자도 적을 필요가 없다.
기본값 수정하기
만약 특정 값을 바꾸고 싶다면,
함수를 호출할 때 그 값을 바꿔주면 된다.
def my_function(a=10, b=1, c=3):
pass
my_function(b=4)
a=10, b=4, c=3의 의미이다.
write 메소드 인자는 5개의 입력을 받는다.
self는 터틀 클래스와 관련되어 있고,
arg는 입력받을 값이고,
이 외에도 move, align, font가 있다.
이 입력값들의 차이는 무엇일까?
아래의 코드는 arg의 입력값으로 hello를 적은 것이다.
move, align, font는 쓰지 않았다.
하지만 코드는 에러없이 잘 돌아간다.
하지만 만약 arg 입력값도 없이,
t.write()라고 적으면 에러가 난다.
그 이유를 살펴보자.
write 메소드의 입력값 설명을 보면
arg:object, move:bool = ..., align:str= ..., font:tuple[str, int, str]=...
라고 적혀져있다.
arg 빼고는 모두 = 다음에 ...이 온다.
... 의 뜻은 기본값이 있다는 뜻이다!
그 말은 즉, 기본값이 있기 때문에
함수를 호출할 때 키워드 인자를 쓰지 않아도 된다는 의미와 같다.
단, 기본값이 없으면 인자의 입력값을 꼭 제공해야 한다.
'파이썬 > 파이썬(python) 중급' 카테고리의 다른 글
[27-4 파이썬] **kwargs(Many Keyworded Arguments) (0) | 2022.09.13 |
---|---|
[27-3 파이썬] *args(Many Positional Arguments), 가변인수, 가변위치인수 (0) | 2022.09.13 |
[27-1 파이썬] GUI, Tkinter (1) | 2022.09.13 |
[26-4 파이썬] 나토 음성 문자 생성하기 (0) | 2022.09.12 |
[26-3 파이썬] 판다스 데이터 프레임 iterrows() (0) | 2022.09.12 |