python - 类型错误 : got multiple values for argument

标签 python python-3.x

我阅读了与此错误有关的其他线程,似乎我的问题与我迄今为止阅读的所有帖子有一个有趣的明显不同,即到目前为止所有其他帖子都存在关于以下任一错误的错误用户创建的类或内置系统资源。我在调用函数时遇到了这个问题,我不知道它可能是做什么的。有什么想法吗?

BOX_LENGTH = 100
turtle.speed(0)
fill = 0
for i in range(8):
    fill += 1
    if fill % 2 == 0:
        Horizontol_drawbox(BOX_LENGTH, fillBox = False)
    else:
        Horizontol_drawbox(BOX_LENGTH, fillBox = True)

    for i in range(8):
        fill += 1
        if fill % 2 == 0:
            Vertical_drawbox(BOX_LENGTH,fillBox = False)
        else:
            Vertical_drawbox(BOX_LENGTH,fillBox = True)

错误信息:

    Horizontol_drawbox(BOX_LENGTH, fillBox = True)
TypeError: Horizontol_drawbox() got multiple values for argument 'fillBox'

最佳答案

当指定了覆盖位置参数的关键字参数时会发生这种情况。例如,让我们想象一个绘制彩色框的函数。该函数选择要使用的颜色并将框的绘制委托(delegate)给另一个函数,传递所有额外的参数。

def color_box(color, *args, **kwargs):
    painter.select_color(color)
    painter.draw_box(*args, **kwargs)

然后调用

color_box("blellow", color="green", height=20, width=30)

将失败,因为将两个值分配给 color:"blelow" 作为位置,"green" 作为关键字。 (painter.draw_box 应该接受 heightwidth 参数)。

这在示例中很容易看出,但当然如果在调用时混淆了参数,则可能不容易调试:

# misplaced height and width
color_box(20, 30, color="green")

这里,color被赋值为20,然后args=[30]color再次被赋值“绿色”.

关于python - 类型错误 : got multiple values for argument,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21764770/

相关文章:

python - 使用函数迭代处理列表

python - 使用循环更改二维列表中的多个值

python - 日期之间的 Instagram graph api 媒体帖子

python - 除了乘法和求幂之外,星号在 Python 中有什么作用?

python - 用指向 URL 的链接替换文本中的 URL

python - Tkinter 在 Pane 窗口中动态调整小部件的大小

python - 调整一幅图像的曝光/白平衡以匹配另一幅图像(使用 PIL?)

python - F查找字符串值的长度,但不查找数字值的长度

python - 同步 sleep 进入asyncio协程

python - 在 Pandas 中分组