我读了与该错误有关的其他线程,似乎我的问题与到目前为止所读的所有帖子都存在有趣的明显区别,即,到目前为止,所有其他帖子在创建一个用户方面都存在错误类或内置系统资源。调用函数时遇到此问题,我无法弄清楚它的用途。有任何想法吗?
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'
当指定关键字参数覆盖位置参数时,会发生这种情况。例如,让我们想象一个绘制彩色框的函数。该函数选择要使用的颜色,并将框的图形委托给另一个函数,从而中继所有其他参数。
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:"blellow"作为position和"green"as关键字。(painter.draw_box应该接受height和width参数)。
color
"blellow"
"green"
painter.draw_box
height
width
在示例中很容易看到这一点,但是,如果在调用时混淆了参数,则调试起来可能并不容易:
# misplaced height and width color_box(20, 30, color="green")
在这里,color被分配20,然后args=[30]又color被分配"green"。
20
args=[30]