当前位置: 首页 > 面试题库 >

TypeError:参数有多个值

周洋
2023-03-14
问题内容

我读了与该错误有关的其他线程,似乎我的问题与到目前为止所读的所有帖子都存在有趣的明显区别,即,到目前为止,所有其他帖子在创建一个用户方面都存在错误类或内置系统资源。调用函数时遇到此问题,我无法弄清楚它的用途。有任何想法吗?

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() html" target="_blank">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应该接受heightwidth参数)。

在示例中很容易看到这一点,但是,如果在调用时混淆了参数,则调试起来可能并不容易:

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

在这里,color被分配20,然后args=[30]color被分配"green"



 类似资料:
  • 问题内容: 我正在用Python制作一个小型猜谜游戏,其中计算机会猜出玩家选择的数字。尝试要求用户输入时出现错误: 这条线抛出 TypeError:预计最多输入1个参数,得到3个 我究竟做错了什么? 问题答案: 仅接受 一个 参数,您将传递它3。您需要使用字符串格式设置或串联将其设为一个参数: 您将其与函数混淆,该函数的确包含多个参数,并且会为您将值连接到一个字符串中。

  • 问题内容: 我有一个源输入 input.txt 我想将这些输入馈入程序,如下所示: 所以我尝试使用 xargs ,但是没有运气。 它给 但我想要 任何的想法? 问题答案: 到目前为止给出的解决方案都无法正确处理包含空格的文件名。如果文件名包含“或”,有些甚至会失败。如果输入文件是由用户生成的,则应该准备好使用令人惊讶的文件名。 GNU Parallel 很好地处理了这些文件名,并为您(至少)提供了

  • 问题内容: 当我尝试从报表参数传递多个值时,BIRT存在问题。 我正在使用BIRT 2.6.2和Eclipse。 我正在尝试从级联参数组的最后一个参数“ JDSuser”中放入多个值。该参数允许具有多个值,并且我正在使用列表框。 为了能够做到这一点,我正在用where-in语句编写我的sql查询,其中我用javascript替换了文本。否则BIRT sql无法从report参数获取多个值。 我的S

  • 看着,我会数到3 语法Get-ChildItem[[-路径]][[-过滤器]][-排除][强制][包括][名称][递归][UseTransation[]][ Get-ChildItem[[-过滤器]][-排除][强制][包括][名称][递归][]LiteralPath[-UseTransation[]][ Get-ChildItem[-属性][目录][文件][强制][隐藏][只读][系统][Use

  • 我遇到了这样一种情况,我的映射方法有3个参数,所有这三个参数都用于派生目标类型的一个属性。 我在接口中创建了一个默认映射方法,保留了用于派生属性的逻辑,现在为了调用这个方法,我可以在注释中使用。 有没有什么方法可以在mapstruct注释中做到这一点,比如,我试着用expression属性和qualifiedByName来注释注释,但它不起作用:

  • 问题内容: 如果我用关键字参数定义一个类方法,则: 调用该方法将生成: 这是怎么回事? 问题答案: 问题在于,传递给python中类方法的第一个参数始终是在其上调用该方法的类实例的副本,通常标记为。如果这样声明了该类: 它的行为符合预期。 说明: 如果不作为第一个参数,则在执行时,将使用arguments调用该方法。然后将该实例分配给(因为是第一个声明的参数),但是python也会尝试分配给,因此