파이썬에서 곱하기 재귀 (컨테이너의 모든 값 곱하기)를 시도하고 있습니다. 함수는 목록의 요소를 위치 인수 (* n)로받습니다. 실행시 "최대 재귀 깊이에 도달했습니다"라는 오류 메시지가 나타납니다. 그러나 단순히 * n 대신 n을 사용하고 목록의 요소를 보내면 코드가 제대로 작동합니다.재귀가 위치 지정 인수로 작동하지 않습니다.
코드 작동하지 :
def multiply(*n):
if n:
return n[0]*multiply(n[1:])
else:
return 1
multiply(5,1,4,9)
근무 코드 :
def multiply(n):
if n:
return n[0]*multiply(n[1:])
else:
return 1
multiply([5,1,4,9])