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坐标可能会丢失或其他什么。有人可以解释一下我需要做什么才能使它正常工作吗?

4

1 回答 1

1

从 Ducking 中我可以很容易地看到,Point 构造函数不采用元组。相反,它需要单独的 x 和 y 参数:Point(x, y)

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

def drawUppercaseT (win, x, y):

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

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

或者您可以在通话期间展平元组:

... Point(*location1) ...

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

于 2017-04-14T17:55:32.780 回答