본문 바로가기
파이썬

파이썬 TypeError : 인수 값이 여러 개 있습니다.

by º기록 2020. 12. 23.
반응형

이 오류와 관련된 다른 스레드를 읽었으며 지금까지 읽은 모든 게시물과 내 문제가 흥미로운 뚜렷한 차이점이있는 것 같습니다. 클래스 또는 내장 시스템 리소스. 함수를 호출 할 때이 문제가 발생합니다. 그 이유를 알 수 없습니다. 어떤 아이디어?

BOX_LENGTH = 100
turtle.speed(0)
fill = 0
for i in range(8):
    fill += 1
    if fill % 2 == 0:
        Horizontol_drawbox(BOX_LENGTH, fillBox = False)
    else:
        Horizontol_drawbox(BOX_LENGTH, fillBox = True)

    for i in range(8):
        fill += 1
        if fill % 2 == 0:
            Vertical_drawbox(BOX_LENGTH,fillBox = False)
        else:
            Vertical_drawbox(BOX_LENGTH,fillBox = True)

에러 메시지:

    Horizontol_drawbox(BOX_LENGTH, fillBox = True)
TypeError: Horizontol_drawbox() got multiple values for argument 'fillBox'

 

해결 방법

 

이는 위치 인수를 덮어 쓰는 키워드 인수가 지정되었을 때 발생합니다. 예를 들어, 색깔있는 상자를 그리는 함수를 상상해 봅시다. 이 함수는 사용할 색상을 선택하고 상자 그리기를 다른 함수에 위임하여 모든 추가 인수를 전달합니다.

def color_box(color, *args, **kwargs):
    painter.select_color(color)
    painter.draw_box(*args, **kwargs)

그런 다음 전화

color_box("blellow", color="green", height=20, width=30)

두 개의 값이 color 에 할당 되었기 때문에 실패합니다. "blellow"는 위치로, "green"은 키워드로 사용됩니다. ( painter.draw_box height width 인수를 허용해야합니다).

이것은 예제에서 쉽게 볼 수 있지만 물론 호출시 인수를 혼합하면 디버그하기가 쉽지 않을 수 있습니다.

# misplaced height and width
color_box(20, 30, color="green")

여기서 color 20 이 할당 된 다음 args = [30] color 에 다시 "가 할당됩니다. 녹색 ".

 

참조 페이지 https://stackoverflow.com/questions/21764770

 

 

반응형

댓글