以下是我的代码,执行时我得到:
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 坐标丢失了或者什么的。有人可以解释一下我需要做什么才能使其正常工作吗?
最佳答案
从 Ducking 中我可以轻松看出,Point 构造函数不接受元组。相反,它需要单独的 x 和 y 参数:Point(x, y)
您可以用两个单独的参数替换位置参数;像这样:
def drawUppercaseT (win, x, y):
或者您可以提取元组成员;像这样:
... Point(location1[0], location1[1]) ...
或者您可以在调用期间展平元组:
... Point(*location1) ...
我建议扁平化,因为(1)它很酷; (2) 元组比单独的坐标值更有意义; (3) 太酷了!
关于python - 如何将坐标作为参数传递给函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43416432/