python - 如何将坐标作为参数传递给函数?

标签 python parameter-passing function-calls zelle-graphics

以下是我的代码,执行时我得到:

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/

相关文章:

python - ColumnTransformer 因管道中的 CountVectorizer 而失败

c - 将字符串回显到 powershell 中的 c 程序

performance - MATLAB 按值传递与按对象传递

c - 通过函数传递结构

node.js - 调用错误优先功能Node JS

internet-explorer-9 - IE 通过函数调用运行得更快?

Python:如何包装函数调用,而不是函数本身?

python - ARP 中毒 scapy : Failure to get target MAC

python - C 中的声明考虑了 C++ 中的定义

javascript - Python Selenium 网络驱动程序 : trying to call a javascript function