2017-04-14 47 views
1

下面是我的代码并执行时,我得到:如何将坐标作为参数传递给函数?

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

这是我的代码:

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() 

当我把代码从功能的main方法它的工作原理。但是,当我尝试单独实施并通过location1作为参数drawUpperCaseT时,我收到错误消息。看来,也许y坐标正在迷失或什么。有人可以解释我需要做些什么才能做到这一点?

+0

'location1'是一个元组。你将一个元组传递给'Point'。它实际上是将单个位置元组作为参数,还是期望单独的x和y参数? – user2357112

回答

1

从我可以从闪避很容易地看到,点构造并不需要一个元组。相反,它需要独立的X和Y参数:Point(x, y)

您可以替换为两个独立的参数位置参数;像这样:

def drawUppercaseT (win, x, y): 

或者你可以提取元组成员;像这样:

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

或者在通话过程中,你可以扁平元组:

... Point(*location1) ... 

我推荐扁平化,因为:(1)它很酷; (2)元组比分别的坐标值更有意义;和(3)很酷!

相关问题