Python에서 함수 인수 사용
이제 입력이 없는 함수를 만드는 방법을 알았으므로 다음 단계는 인수가 필요한 함수를 만드는 것입니다. 인수를 사용하면 함수가 더 많은 작업을 수행하고 수행하는 작업을 조건부로 허용할 수 있으므로 함수를 더 유연하게 사용할 수 있습니다.
인수가 필요함
우주선을 조종하는 경우 필요한 입력이 없는 함수는 시간을 알려주는 단추가 있는 컴퓨터와 같습니다. 단추를 누르면 전산화된 음성이 시간을 알려 줍니다. 그러나 필요한 입력은 이동 거리를 계산하기 위한 목적지가 될 수 있습니다. 필요한 입력을 함수에 대한 인수라고 합니다.
인수를 요구하려면 이를 괄호 안에 넣습니다.
def distance_from_earth(destination):
if destination == "Moon":
return "238,855"
else:
return "Unable to compute to that destination"
인수 없이 distance_from_earth()
함수를 호출해 보세요.
distance_from_earth()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: distance_from_earth() missing 1 required positional argument: 'destination'
Python은 함수에 destination
이라는 인수가 필요하다는 오류 메시지와 함께 TypeError
를 발생시킵니다. 우주선의 컴퓨터에 목적지까지의 이동 거리를 계산하라는 메시지가 표시되면 목적지가 필수 조건이라는 메시지가 표시되어야 합니다. 예제 코드에는 응답에 대한 두 개의 경로가 있습니다. 하나는 달을 위한 것이고 다른 하나는 다른 경로에 대한 것입니다. 달을 입력으로 사용하여 답변을 가져옵니다.
distance_from_earth("Moon")
238,855
catch-all 조건이 있으므로 다른 문자열을 목적지로 사용하여 해당 동작을 확인하세요.
distance_from_earth("Saturn")
Unable to compute to that destination
여러 필수 인수
여러 인수를 사용하려면 쉼표로 구분해야 합니다. 주어진 거리와 일정한 속도로 목적지에 도달하는 데 걸리는 일 수를 계산할 수 있는 함수를 만들어 보겠습니다.
def days_to_complete(distance, speed):
hours = distance/speed
return hours/24
이제 지구에서 달까지의 거리를 사용하여 시간당 120킬로미터의 제한 속도로 달에 도달하는 데 걸리는 일수를 계산합니다.
days_to_complete(238855, 75)
132.69722222222222
인수로서의 함수
days_to_complete()
함수의 값을 사용하고 변수에 할당한 다음 round()
(가장 가까운 정수로 반올림하는 기본 제공 함수)에 전달하여 정수를 얻을 수 있습니다.
total_days = days_to_complete(238855, 75)
round(total_days)
133
그러나 유용한 패턴은 반환된 값을 할당하는 대신 함수를 다른 함수에 전달하는 것입니다.
round(days_to_complete(238855, 75))
133
팁
함수를 입력으로 다른 함수에 직접 전달하는 것이 유용하지만 가독성이 저하될 수 있습니다. 이 패턴은 함수에 많은 인수가 필요한 경우에 특히 문제가 됩니다.