2017-04-14 24 views
1

다음은 내 코드와 실행했을 때 얻을 :좌표를 함수의 인수로 전달하는 방법은 무엇입니까?

TypeError: __init__() missing 1 required positional argument: 'y' 

이 내 코드입니다 : 나는 그것이 작동 main 방법에서 함수의 코드를 넣어

def drawUpperCaseT(win, location1): 

    letterT = Text(Point(location1), "T") 
    letterT.setSize(30) 
    letterT.draw(win) 

def main(): 

    #1. Create Graphics Window 
    win = GraphWin("My Initials", 600, 600) 
    win.setCoords(0,0,100,100) 
    location1 = (15,50) 

    drawUpperCaseT(win, location1) 

    #Capture Mouse to Close 
    win.getMouse() 
    win.close() 

main() 

. 그러나 별도로 구현하려고 에 인수로 location1을 전달하면 오류가 발생합니다. 어쩌면 y 좌표가 없어지는 것 같습니다. 누군가가이 일을하기 위해 내가해야 할 일을 설명해 주시겠습니까?

+0

'location1'은 튜플입니다. 하나의 튜플을'Point'에 전달하고 있습니다. 실제로 인수로 단일 위치 튜플을 취합니까? 아니면 별도의 x 및 y 인수가 필요합니까? – user2357112

답변

1

Ducking에서 쉽게 볼 수있는 것처럼 Point 생성자는 튜플을 사용하지 않습니다. 대신 별도의 x 및 y 매개 변수가 필요합니다. Point(x, y)

두 매개 변수로 위치 매개 변수를 바꿀 수 있습니다. 이렇게 :

def drawUppercaseT (win, x, y): 

또는 튜플 구성원을 추출 할 수 있습니다. 그래서 같은 :

... Point(location1[0], location1[1]) ... 

아니면 통화 중에 튜플을 평평하게 수 : I (1)가 멋진 때문에 평평하게 추천

... Point(*location1) ... 

; (2) 튜플은 별도의 좌표 값보다 의미가 있습니다. 그리고 (3) 멋지다!