以下是我的代码,执行后我得到:
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 :(得分:1)
从Ducking可以很容易地看到,Point构造函数没有采用元组。相反,它需要单独的x和y参数:Point(x, y)
您可以使用两个单独的参数替换location参数;像这样:
def drawUppercaseT (win, x, y):
或者你可以提取元组成员;像这样:
... Point(location1[0], location1[1]) ...
或者你可以在通话期间压扁元组:
... Point(*location1) ...
我建议展平,因为(1)它很酷; (2)元组比单独的坐标值更有意义; (3)很酷!