我阅读了与此错误有关的其他线程,似乎我的问题与我迄今为止阅读的所有帖子有一个有趣的明显不同,即到目前为止所有其他帖子都存在关于以下任一错误的错误用户创建的类或内置系统资源。我在调用函数时遇到了这个问题,我不知道它可能是做什么的。有什么想法吗?
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
应该接受 height
和 width
参数)。
这在示例中很容易看出,但当然如果在调用时混淆了参数,则可能不容易调试:
# 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/